Bitswap

right now, the block service is accessing the datastore, so checking that in the bitswap would be rather... redundant and time wasteful.

As for broadcasting the new key, right now, GetBlock sends a request out, and then waits for the other peers to respond with the block. We could change this to just broadcasting the want list, and waiting for the other peers to decide to send those blocks back. This is something we need to discuss before we go much further.