Object Allocation Profiler

Requires a patched ruby that exposes `size_t rb_os_allocated_objects(void)`.

REE:

```
       100 objs |   100.times{ 1 }
       100 objs |   100.times{ 1 + 1 }
       100 objs |   100.times{ 1.1 }
       200 objs |   100.times{ 1.1 + 1 }
       200 objs |   100.times{ 1.1 + 1.1 }
       200 objs |   100.times{ "str" }
        82 objs |   ('a'..'z').to_a
```

1.9:

```
                |   100.times{ 1 }
                |   100.times{ 1 + 1 }
                |   100.times{ 1.1 }
       100 objs |   100.times{ 1.1 + 1 }
       100 objs |   100.times{ 1.1 + 1.1 }
       100 objs |   100.times{ "str" }
        30 objs |   ('a'..'z').to_a
```

2.0:

```
                |   100.times{ 1 }
                |   100.times{ 1 + 1 }
                |   100.times{ 1.1 }
                |   100.times{ 1.1 + 1 }
                |   100.times{ 1.1 + 1.1 }
       100 objs |   100.times{ "str" }
        29 objs |   ('a'..'z').to_a
```