Bitswap rounds

This PR implements the first revision of 'Bitswap Rounds' as defined by @jbenet in issue #417 
well, is it an error to ignore? if the allocation is still usable (i.e. this block is bad but try others), then the allocation itself could be logging the error (and not returning it). in that case, if eveyrhing returns errors, then bail out with an error and then here we know something's gone really bad