Buffer dispose

This may be a controversial piece of functionality. While it does offer some awesome advantages for scenarios like the following:
```javascript
net.createServer(function(socket) {
  socket.on('data', function(chunk) {
    fs.write(anFsFd, chunk, function() {
      chunk.dispose();
    });
  });
});
```
This is riddled with opportunities for developers to kick themselves in the crotch. IMO the advantages are enough where finding the right balance is well worth it. In some cases were raw throughput is key I've been able to increase throughput upwards of 30%.