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.
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.
state: use jc.IsNil throughout EnvironSuite
Merge pull request #1178 from mjs/newenvironment-refactoring

reworked State.NewEnvironment()

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.

---

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.


(Review request: http://reviews.vapour.ws/r/489/)