Peerstore Fix

This PR changes Net, Swarm, SecurePipe to take a Peerstore.
Whenever they interact with a new peer (say, an incomming conn,
or by somebody calling Dial), it adds the given peer to the Peerstore.

This should fix the problem where peers are at some point given to the
network and/or dht that are not in the peerstore at all. (this panics
atm, to find bugs).
What would cause the conn's peer to be nil?