Introduce authentication and basic authorization in the server.

- When enabled, all requests must be authorized using an authorization token
- Token is acquired by authenticating with a username/password tuple.
It might be beneficial to have this as some kind of interface here so that other types of token extractions can be implemented.