Add an owner to state.InitializeState.

Instead of the owner being "admin", it is now whatever
gets passed in.  All existing tests now use a non-admin user
name.  The jujud bootstrap command now takes a name to use
as a command line arg, but it defaults to "admin", which is the
existing behaviour.  A follow-up branch will change the client
side bootstrap command to use the currently logged in user.

Fixed restore, no tests there.
Merge pull request #773 from howbazaar/specify-initial-user

Add an owner to state.InitializeState.

Instead of the owner being "admin", it is now whatever
gets passed in.  All existing tests now use a non-admin user
name.  The jujud bootstrap command now takes a name to use
as a command line arg, but it defaults to "admin", which is the
existing behaviour.  A follow-up branch will change the client
side bootstrap command to use the currently logged in user.
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.
Fix tests
Address review comments