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.
Semantic update to BlockchainDB documentation
Added get_block_difficulty function to BlockchainDB

I see no reason to fetch the cumulative difficulty for two sequential
blocks and subtract them every time one wants the difficulty for a
specific block, so we'll let BlockchainDB implementations handle this.