Ensure weakly referenced callback fields are kept

Under certain conditions, R8 can optimize away write-only fields.
However, this isn't safe if the fields are implicitly used as strong
references that keep alive downstream weak references. Add a keep
rule to handle this for various callback field types. Follow-up work
will explore more general ways of avoiding undesirable optimizations
for similiar cases.

Change-Id: I5d21fad848eda7580fa150d03fd838d0b87b96a0
Test: m SystemUI + `dexdump SystemUI.apk | grep mCurrentUserTracker`
Bug: 264686688,234609147
1 file changed