child_process: emit 'disconnect' asynchronously

Deferring I/O-triggered events to the next event loop tick is not just
a good idea, IT'S THE LAW!
slab_allocator: remove SlabAllocator

Now that Buffer instantiation has improved, the SlabAllocator is an
unnecessary layer of complexity preventing further performance
optimizations.

Currently there is a small performance loss with very small stream
requests, but this will soon be addressed.
buffer: add dispose to Buffer instance api

Users now have the ability to manually dispose a Buffer when it's no
longer needed. This will transform the instance into a zero-length
Buffer. If the instance was a slice then the memory is not actually
released, but the pointer to the parent allocation is removed.
smalloc: use malloc instead of new

To use realloc the implementation had to be changed to use malloc/free.