Use nested (slave) HTTP requests for proxying

This gives more flexibility in how we handle the proxying, potentially
allowing to modify the content on the fly.
Make SignRequest resilient to nil configs

This unclutters ServeHTTP a bit, and makes it easier for testing.
Add encryption support

This is configured by adding an "Encryption" key in the bucket config.
The encryption is done using AES, key can be 16, 24 or 32 characters
to choose between AES-128, AES-192 or AES-256. Any other key length
will trigger an error.
Add tests for encryption