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.
As I've said later on in this review, I think it may be just as clear to do:

     if err := h.authenticate(req); err != nil {
         return err
     }
     return h.serveDeleteArchive(id, w, req)

and similarly for servePostArchive below. Slightly more
direct code, and you can leave the return type of servePostArchive
unchanged.