'peers' RPC command

This just adds a `peers` RPC command which outputs a list of the currently connected peers.

Also includes a fix to `core` to populate the PeerMap, making the peer data accessible.
Is the slice of peerInfo a slice of pointers in order to satisfy the encoding?

Go provides nice behavior around passing structs by value, so pointer indirection may not be necessary here.

```
[]*peerInfo
```