Rpc augment

These commits provide two features. First, the ability to GetState based on a peer's uid. If uid is an empty string, then the state for all peers is returned. Second, the introduction of a new "error" message type which reports failed XMPP connections to the controller. Code has been tested between multiple nodes.