The current memory profile reports the live objects and their sources at
the time at which it is captured. This is almost never what we want:
instead, we want a profile of _all_ allocations over the lifetime of the
process. These changes replace the heap profile with an allocation
profile and add a parameter, --memprofilerate, to control the rate at
which allocations are profiled.