add yosemite to macOSXSeries
Prevent destroy-environment when desired.
Fixed error construction and format. Renamed vars for clarity and conformity.
Cleaned up error-related code based on review.
Made code readable
Environment variable manipulation is behind cmds for block/unblock operation.
Code readability improvement.
state: extracted environment setup ops

The code to generated DB operations for setting up the initial
environment have been extracted so that they can also be called from
elsewhere.
Mock command for tests.
More verbose command purpose for help.
Move backupsMetaC into backups.go.
Move state/backups.go to state/backups/storage.go.
Use the common implementation for getting a new State.
Add a note about dropping the corresponding function in state.
Use *state.State rather than the temp surrogate interfaces.
Fix a couple storage names.
Fixing up error messages and mock.
Using DeepEquals for map comparison.
Merge pull request #1107 from anastasiamac/flag-prevent-destroy-environment

Prevent destroy-environment when desired.

Customers and stakeholders want to be able to prevent accidental damage to their Juju deployments by activating environment settings which prevent destroy-environment. 

When on, this setting needs to be manually deactivated prior to the protected operations being allowed.

"force destroy-environment" ignores this setting.
state: NewEnvironment now provides an initialized environment

NewEnvironment used to just add an entry to the environments
collection. Now all required initialisation is performed so that the
returned environment is ready to use. This has required a signficant
change to the the method's signature.