Implement basic websocket functionality

As a user types, the text is visible to all clients.

Resolves #2