use `net/mocknet` in integration tests

This PR adds the `net/mocknet` to the tests/benchmarks that perform the Add/Cat operation.

@jbenet @whyrusleeping 

TODOs:

- [x] remove panics
- [x] revise and cleanup
- [ ] does mocknet require cleanup? `mn.Close()`?
- [ ] when setting up mocknet, is it sufficient to link, but not connect peers?
- [ ] private key generation is really expensive/slows down tests. got any ideas for faster fixture generation that meets `mocknet` requirements? Would @whyrusleeping's parameterized version solve this problem?
please rename this to something other than `Peer`. suggest just using `PeerNetParams` directly. I just got done removing `Peer` from the entire codebase. It will breed confusion and break things. Also, anything called `Peer` shouldn't "contain" addresses. the ephemeral + indeterminate state of addresses is a source of so, so much pain. (peers can have many, can gain + lose them, might have different mappings depending on where two peers are in the network, might have complete information, might selectively expose addresses to some peers, etc etc etc.)

Why not just use `PeerNetParams` ?