Bitswap rounds

This PR implements the first revision of 'Bitswap Rounds' as defined by @jbenet in issue #417 
or named params:
```Go
AddEntry(key u.Key, priority int, cancel bool)
```

(a thought that occurred to me is we *could* use `priority = 0` but this type of overloading can lead to problems later)