Initial commit

While there isn't much that's usable here yet, there's enough done that
justifies getting this into some level of source control. I'd be mildly
annoyed at the least if my laptop crapped out.

So! In the initial commit we have:
* Basic WebSocket protocols/factories for clients and servers. Currently, these
  farm out a lot of their actual work to dedicated receiver objects (which are
  really kind of like controllers). An open question is just how much logic
  should live in the protocol, and how much should live in the receiver.
  Clients, for example, probably don't need a receiver. Something to think
  about.
* A basic server/client. Currently, the clients just pass messages to the
  server and the server echoes it back. A basic 'quit' and 'say' command have
  been added, but are totally in the wrong place and with no real structure.
* A 'message bus' for internal decoupling of producers/consumers. Nothing uses
  this, and it was probably a mistake to add it already. We'll see if it is
  needed, but I do want to make sure - up front - that things don't get tightly
  coupled internally.