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.
Hum, yeah.. this is odd though, because I didn't add BytePrinter, I just added the compactHex() method to it, I guess BytePrinter got removed in 2.2, which is a shame, because it's super useful for debugging store format issues. I think we should keep BytePrinter around, not sure why its been removed. HexPrinter seems pretty cool as well though, since its able to handle arbitrary streams, so they cater to slightly different use cases, but yeah, should probably be merged somehow.