smalloc: initial implementation

smalloc is a simple utility for quickly allocating external memory onto
js objects. This will be used to centralize how memory is managed in
node, and will become the backer for Buffers. So in the future crypto's
SlabBuffer, stream's SlabAllocator will be removed.
buffer: use smalloc as backing data store

Memory allocations are now done through smalloc. The Buffer class has
been removed completely, but for backwards compatibility have left the
namespace as Buffer.

All tests are passing except for test-buffer.js. This was intentional as
there is discussion right now on stabilizing how arguments are coerced
or thrown.
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.