Bitswap rounds

This PR implements the first revision of 'Bitswap Rounds' as defined by @jbenet in issue #417 
Im not sure what errors the Datastore can return other than `ErrNotFound`. You would be more knowledgable on that topic than I.