Add memory debugging to sleeper_agent

This pull request adds a `--memory` flag to `sleeper_agent_activate`, which prints out a memory report, in addition to a trace. This is useful in debugging long-lived processes which bloat in memory over time (like celery jobs).

The memory report has one line per type and gives counts and aggregate resident memory usage on a per-type basis:

    ### Memory Usage
    616.8 KB      481 objects                                      <type 'dict'>
    136.0 KB      154 objects                                      <type 'type'>
    118.1 KB     1008 objects                                  <type 'function'>
     79.9 KB     1023 objects                        <type 'wrapper_descriptor'>
     38.6 KB      174 objects                                      <type 'list'>
     38.5 KB      548 objects                <type 'builtin_function_or_method'>
     37.4 KB      495 objects                                     <type 'tuple'>
     33.3 KB      388 objects                                   <type 'weakref'>
     28.0 KB      108 objects                                       <type 'set'>
     26.1 KB      371 objects                         <type 'method_descriptor'>
     14.1 KB       16 objects                              <class 'abc.ABCMeta'>
     13.2 KB      188 objects                         <type 'member_descriptor'>
     11.8 KB      168 objects                         <type 'getset_descriptor'>