refactor(peer) some _minor_ safety features

This PR cleans up the peer package, making it a tiny bit safer to use.

* All peers are created using Peerstore. It is no longer simple to instantiate a naked peer. To create naked peers, use the `mockpeer` package.

(This refactor was performed because of work #416 and a promise I made a long time ago)
> can rebase to move the ds stuff to one commit?

That's how I roll :tiger: https://github.com/jbenet/go-ipfs/commit/1e007791a56aeb542f52ba045eed91ee97c5a11c