Serve charm archives from the API server

Charm archives are now stored in the blobstore, and served over HTTPS.
The uniter client is modified to construct URLs using the API server URL.

We also introduce a new database-master upgrade step which migrates existing
charm archives from provider storage to environment storage. The final step
of the migration is to update the charm's document in state to record the
storage path.
Can't do much about invalid environment tag here. Really we should be storing it as a names.EnvironTag I think.

I've created a helper function in api/uniter for constructing the URL.