buffer: reimplement Buffer pools

This is an undesirable, but for the time necessary since small chunks
are still too slow. It will continue to be improved as alternatives are
discovered.

One important change to Buffer pools was that they are only allocated if
the requested chunk is < poolSize / 2. This was done because allocations
are much quicker now, and it's a better use of the pool.
buffer: expose class methods alloc and dispose

Expose the ability for users to allocate and manually dispose data on
any object. These are user-safe versions of internal smalloc functions.
buffer: remove c-style casts
buffer: deprecate legacy code

Several things are now no longer necessary. These have been deprecated,
and will be removed in v0.13.
src: add node_isolate's from stable merge

Add node_isolate argument to new code from recent v0.10 branch merge.
smalloc: implement new v8 api

Implements some of the new v8 API that'll be coming. Hopefully this will
help instantiation time in the long run.
buffer: add yank() method

When a buffer comes in from the SlabAllocator or another pool it's
useful to quickly create a clone of that buffer in an unpooled instance
if known the slice will hang around for a while.