Peer Management Updates

Motivation:
- When sending messages to all connected peers (i.e. search) the peer may sometimes not be in your k-buckets. 
- Peers in the sidebar are not realtime synced at the moment. When we receive hello messages this is an apt time to dynamically add them to our list.

Changelog:
- Add contact to k-bucket if not found when iterating through activePeers
- Add hello peers to sidebar as we receive hellos.
I think all of these are better written as:

```
if (typeof listeners.hello != 'undefined') ...
```

How come you're using `hasOwnProperty`?