Add basic HTTP authentication to archive POST/DELETE.

The credentials can be stored in the charmd configuration file.
Abstract out the authentication logic in a decorator.
Created a card for the DoRequest refactoring.
It's more imperative but also more error prone. For instance, we need to remember to set the WWW-Authenticate header each time.
Moreover, I see value in having the same signature in the different serve*Archive methods.
I don't think the functional approach is less readable, the decorator itself is straightforward.
What do you think?