Java Heap Profiler for Perfetto.

This adds a new ART plugin that waits for a signal (number 38), when
received forks the process (so that the app stays responsive to the
user), then connects to Perfetto and writes out a proto describing the
graph of currently live ART objects.

This has several advantages over `am dumpheap`:
* Because it forks, it has less impact on the user.
* It only writes out the ownership graph, rather than also dumping the
  contents of the heap.
* As this is streamed into Perfetto, it can be correlated to other data
  sources in the same trace file.

Test: Flash; start data source; send signal 38; get heap dump
Bug: 136210868

Change-Id: I1f75bc532fd0a6b8d5f7f474ac7154180677dedd
8 files changed