Update demo app

Expand the demo app somewhat so it's actually a good example. The server
can be started and stopped and a WebSocket client can be started and
stopped. Whatever the client sends the server echos but reversed.