AddCat Bitswap Integration Tests

**features**
* adds delay/latency configuration to the `datastore`, `Bitswap.VirtualNetwork`, and `mockrouting` types.
* adds benchmarks to observe the effect that (each type of) latency has on AddCat performance.
* adds long-running integration tests. execute with env variable `IPFS_EPIC_TEST`

**learnings**
* of the three types of latency, routing has the largest adverse effect on performance https://build.protocol-dev.com/job/addcat-benchmarks/4/console
* 500 MB transfer with "NY to SF" network latency, "SSD" blockstore latency, and 200ms routing latency runs ~forever. We now have a reproducible test case. https://build.protocol-dev.com/job/gotest/168/console

**status**
* Still playing around with variables.
* Will squash commit history before merging
* we may want to rebase the new bitswap changes on top of this for testing @whyrusleeping 
* nice-to-have: mock out the network at a lower layer
* I hereby dedicate this PR to Riff Raff. https://www.youtube.com/watch?v=TL0RqEsF_mY
Ah. Wonderful. I was looking for a way to get determinism. 

71d6e5c1a82c45d27bd28401406d317eef245527

The icing on the cake would be for random to provide an `io.Reader`

``` go
random.NewPseudoRandomReader(count, seed)
```