Add BlockchainDB reference to class Blockchain
Changed return type of pop_block() to block from void

In order for the blockchain to inform the transaction pool of a popped
block, the BlockchainDB will now return the block popped with a
pop_block() call.

Also, added a bit of documentation on how to do a concrete
implementation of BlockchainDB
Removed function that was never called
Notes on what needs to be done for non-low-hanging fruit
Updating Blockchain to use BlockchainDB

As this commit is mostly low-hanging fruit as far as refactoring the
blockchain implementation goes, I think each change in this commit
speaks for itself and would be a bit cumbersome to detail here.  I
intend to have at least thorough commenting for the non-low-hanging
fruit changes, and possibly very thorough commit messages to go along
with those changes.