internal/v4: macaroon-based authorization

We configure a known third party discharge service
and issue macaroons requiring that the user be
authenticated before an access request is granted.

In this PR we use this authorisation only for the existing
authorized endpoints, and do not try to be sophisticated
in what caveats we add.

So we support both macaroons auth and HTTP basic auth.
It would be nice to document the process somewhere to help future readers.