Get rid of dead code in Storage::Backends::StoreBase

The getblocks_callback lambda that was given to the constructor was
never called from anywhere.
Create storage backends using a factory method

That makes the code more readable and easier to understand than calling
the dynamically defined methods using "send".
Do not send "addr" twice to clients sending "verack"

In order to handle peers that omit the "verack" message
 #complete_handshake is called both on "version" and "verack" messages.

Until now this method triggered an "addr" command to the peer
unconditionally, though, so proper clients received the message twice.
add contracthashtool utils

  credits: Andy Alness https://github.com/aalness/contracthashtool-ruby