Add the heyu-notify command

Now that we can send notifications, this adds the plumbing necessary
to create the heyu-notify command, which is used to submit a
notification to a HeyU hub.
Add the "goodbye" message

The "goodbye" message allows for the subscribing HeyU clients to exit
cleanly.
Add version to to_frame()

To support future protocol versions, it's necessary to be able to
specify the desired frame version to return when converting a
protocol message into a frame.  This adds the "version" argument
to heyu.protocol.Message.to_frame(), defaulting it to the current
version.  Note that the parameter is currently unused.
Create a frame cache

Messages are immutable, which means that caching serialized frames is
quite doable.  This adds a built-in frame cache, keyed on protocol
version, to reduce the number of calls to msgpack.dumps().
Skeleton of the HeyU hub

This commit includes the HubServer and HubApplication classes which
form the core of the HeyU hub.  HubServer instances track client
subscriptions, and HubApplication instances match up with a given
client.