• Wire up the JS engine's memory reporting.

    SpiderMonkey provides an extremely fine-grained breakdown of memory
    usage, but for Servo we aggregate the measurements into a small number
    of coarse buckets, which seems appropriate for the current level of
    detail provided by Servo's memory profiler. Sample output:
    ```
    |   10.99 MiB -- pages
    |       7.75 MiB -- url(http://html5demos.com/worker)
    |          4.63 MiB -- js
    |             2.00 MiB -- gc-heap
    |                0.94 MiB -- decommitted
    |                0.92 MiB -- used
    |                0.09 MiB -- unused
    |                0.05 MiB -- admin
    |             1.44 MiB -- malloc-heap
    |             1.19 MiB -- non-heap
    |          [...]
    |       3.24 MiB -- url(http://html5demos.com/js/worker-cruncher.js)
    |          3.24 MiB -- js
    |             1.17 MiB -- malloc-heap
    |             1.06 MiB -- non-heap
    |             1.00 MiB -- gc-heap
    |                0.69 MiB -- used
    |                0.19 MiB -- decommitted
    |                0.09 MiB -- unused
    |                0.03 MiB -- admin
    ```
    Most of the changes are plumbing to get the script and worker tasks
    communicating with the memory profiler task.
    nnethercote committed Jul 16, 2015