Add custom image metadata to environment storage

Image metadata is now added to environment storage instead of provider
storage. Custom simplestreams data sources are now registered in the
environs package, and the imagemetadata.SupportsCustomSources interface has
been removed.

At bootstrap time, if --metadata-source is specified then we register a
datasource pointing to the image metadata (if it exists), and we read it
and add it to the MachineConfig. We use this to create simplestreams files
on disk on the bootstrap machine, which jujud bootstrap-state reads and
adds to environment storage.

State servers now register an environment-storage based datasource directly
after opening state. This will be used instead of the old provider state
datasource.