Add HAML output type

HAML is just rendered as plain HTML. So it is subject to the same
XSS fallacy as the HTML output type.
Add a client library + manual tests

- Restructuring: The client and the web app each live in their own
  directory now.
- Both, the client and the web app load the host and the port
  dynamically from `config.yaml'.
Add Ruby client + CLI

- The client issues POST requests to a running server.
- The CLI uses the client to issue POST requests to a running
  server.
Fix return types

- Correct HTTP status types for the web app.
- No return values or error message for the client.
- No return values and correct help message for the CLI.
Decouple the web app

- This makes the vanilla HTTP app testable independent from the
  Websocket component.
- The web app can now be mounted without the websocket
  dependencies, if necessary.
Add API tests + API documentation

- Stronger decoupling of web app and WebSocket server for better
  testing + mounting as Rack application.
- API-only tests (not client, not CLi)
- Simple API documentation