Add more weak reference information to traces

Separate the marking piece of EnqueueFinalizerReferences.

Report the number of finalizable objects.

Similarly report the number of SoftReferences we encounter
and the amount of time we spend marking as a result.

Add trace information and possibly log entry when we block
dereferencing a WeakReference or the like.

Do the same for JNI WeakGlobals, with some code restructuring
to enable that.

Delete one of the two nested and almost entirely redundant
ProcessReferences ATrace tags, thus reducing the space needed
to display HeapTaskDaemon back to what it was.

Bug: 189738006
Test: Boot sc-dev and look at trace
Change-Id: I198db632d957bcb9353ab945cedc92aa733963f0
6 files changed