* Introduce testing utilities: classes that run servers when used as a context manager. One using subprocesses, one using a mock ASGI server.
* The above allows us to properly measure our test coverage.
* The test coverage is raised to 100% for all relevant modules.
* Raise` EOFError` instead of `IOError` upon connection/ws close.
* Add invoke `tasks.py` for easier dev.
* Doc tweaks.