external memory allocation management

Figured I'd get this out there early. There are a massive number of todo's, but wanted feedback as I moved along.

The general point of these changes are:
- Create single location for all external memory allocation
- Manage single location for improved performance and memory management
- Remove Fast/Slow Buffer logic
- Hopefully remove need for `SlabAllocator` (streams), `SlabBuffer` (tls) and `allocNewPool` (fs)

Everything here is up for debate. These changes will need to be ridiculously well tested and thought though.

**EDIT:** Anyone looking for the removal of the SlabAllocator should check [trevnorris/node/no-slaballocator](https://github.com/trevnorris/node/tree/no-slaballocator). That is built on top of this PR, but doesn't belong here. As soon as this is accepted we'll begin discussing the other.