smalloc: initial commit

smalloc is a simple utility for quickly allocating external memory onto
js objects.
smalloc: add sliceOnto

This is a generic and simpler way of makeFastBuffer, as it works on any
allocated objects.
buffer: implement buffers using smalloc

This is a mostly working implementation of Buffers using smalloc.

Not all tests in test-buffer.js are passing, and the benchmark
tls-connect is failing with "corrupted double-linked list".

A buffer slice will also add buffer._data which contains a reference to
the raw allocated slice. This would be set as an internal hidden field
except it's slow as rusty gears.