Add a connection layer.

This makes the status command work. However, we don't really track
request ID as we should...
Give a random name to ourselves.
Accept broadcast messages.
Ignore messages not for us.
Fix getting status from Chromecast key
Ability to run arbitrary commands