Bitswap rounds

This PR implements the first revision of 'Bitswap Rounds' as defined by @jbenet in issue #417 
What do you think should be done in this case? It really comes down to a failure in Getting blocks from the datastore