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
We should assign the allocation when the allocation happens, not here. That way we don't need to keep `heap_allocated` around at all.