Clean up creating storage backends

The getblocks_callback lambda that was given to the constructor was never called from anywhere.

Creating backends using a factory method is cleaner than the `send` + metaprogramming approach.