Mutate SignalProxy::AbstractPeer into a separate class Peer

It makes no sense anymore to have this a nested class inside SignalProxy
anymore.
Also, this streamlines the template handling a bit; we don't need to duplicate
the handle() message between RemotePeer and InternalPeer.
superfluous_includes--