Debugging leveldb timeouts while searching
Add helper scripts for dealing with corrupt database

In testing, my node thread ran out of memory, making the process force kill rather than gracefully exit.
The process seemed to have aborded mid-save of a block; the block header data made it into the database,
but the transaction details didn't, causing all future lookups of those transactions to fail.

Deleting the block header data caused the block to re-sync from the network, and all was well.
Help levelDown close gracefully when interrupted
Move shutdown processing to the Node level
Add a "isRunning" metadata flag

to catch bad shutdowns
Detect database corruption of blocks and txns

Compare the hash of the object with the hash its saved under, to see if it correlates