Bitswap rounds

This PR implements the first revision of 'Bitswap Rounds' as defined by @jbenet in issue #417 
we should avoid using private methods outside of objects. it's error-prone and makes it hard to refactor things, no?

 (this is a data race)