Replace naked calls to operator new and delete (Fixes #222)

This replaces a mishmash of pointers in the Block and BlockContents classes with
std::unique_ptr. It also changes the semantics of BlockContents to be limited to
use as a constructor parameter for Block objects, as it owns any block buffers
handed to it.

Previous discussion here: https://github.com/tdfischer/rocksdb/pull/1
Correct. This is here because figuring out where to 'properly' set it takes a lot more debugging time, though I've now made another branch that simply refactors a lot of this and at the same time wraps up a solution for #222.