Remote module

**Only for discussion - should not be merged yet**

This is the new remote module to interact with the server.
For information, see the [draft](https://docs.google.com/document/d/1MZ746yQ-uOW19wtWgy6BQIFcfxXxhvMJ7mHC8hNLjbE).

The implementation in it's current state looks quite stable, but I didn't test how good we can handle push-messages yet.