Store subscriptions in a SubscriptionRegister

Rename the Client class to WebSocketClient.
Add a pending integration test for responding to GitHub commit hooks

Also add various fixtures needed by the test.
Extract a RepoMapper module out of the Repo class
Alias #eql? to #== for Blob and Language so they can be Hash keys
Extract a CommitMapper out of the Commit class
Add a minimal WebHook server and an EventDispatcher class
Process incoming webhooks for push events and inform subscribed clients