Possible fix for Bug #1304126

In the SetEnvironmentCommand's Init function I added an additional API call to retrieve existing environment config.
All keys a user specifies in the "juju set-env" command are checked against the existing config keys and if the
user defined key does not exist in the existing config a warning of a possible misspelling is issued.
Fixed capitalization in some of the returned error messages.
Restructured the code so that in the unlikely event that c.NewAPIClient() returns an error, the following code will not fail/panic/etc.
- Moved extra API calls to the Run function.
- Added a similar check for "juju unset-env", which checks if the key the user is trying unset exists in the config
  and displays a warning if it does not.
- Fixed the formatting of warning messages
- Added test to check if appropriate warning messages are issued
Merge pull request #950 from alesstimec/bug#1304126

Bug#1304126

Possible fix for Bug #1304126

In the SetEnvironmentCommand's Init function I added an additional API call to retrieve existing environment config. All keys a user specifies in the "juju set-env" command are checked against the existing config keys and if the user defined key does not exist in the existing config a warning of a possible misspelling is issued.

This way if the users tries: 
juju set-env ss-hostname-verification=false 

A warning will be returned (though the setting is still forwarded to the state):
2014-10-23 09:45:03 WARNING juju.cmd.juju environment.go:135 key ss-hostname-verification is not defined in the current environemnt configuration: possible misspelling


In addition i fixes a few capitalisation in some of the returned error messages.