The Peer is Dead. Long live the ID

This PR is a massive refactor, removing peer.Peer
everywhere and using peer.ID instead. This refactor
also revealed a number of bugs throughout that i
fixed. Sadly, i'm sure i'll introduce some-- this is
a pretty large refactor. The upside is that everything
is saner when it comes to peers and the peerstore.
They **feel** much better now.

Note: I will squash most of this PR so that it is
bisectable.


@maybebtc @whyrusleeping could use CR. multiple eyes
looking over it would be ideal.
IIRC an ewma only knows about samples. to add the notion of a period of time we'd have to make sure the samples are only taken over a period (or change how much each sample affects the ewma). this ewma is just for all samples taken. (pls correct me if I'm wrong)