Tests now passing again.
Merge remote-tracking branch 'refs/remotes/origin/master' into leadership-integration-tests

Conflicts:
	cmd/jujud/agent/agent.go
	cmd/jujud/machine_test.go
Move environment get/set/unset into a subcommand.
Fix up command registration.
First changed tests due to new gopkg.in/yaml.v1 version.
Merge branch 'master' of https://github.com/juju-actions/juju into fix-yaml-v1-tests
separate metrics code/tests; move helpers from uniter_test to util_test
drop uniter_old_test, move components into uniter_test and util_test as appropriate
Fixes after review.
remove extra quotes
Remove unneeded imports.
Merge branch 'master' of https://github.com/juju-actions/juju into fix-yaml-v1-tests
Split into text, YAML and JSON tests and used the new checkers.
Merge branch 'master' of https://github.com/juju/juju into fix-yaml-v1-tests
testing: Update MakeEnvironment to take CofingAttrs

Update the testing factory function MakeEnvironment to take a new parameter: ConfigAttrs. ConfigAttrs is a map of environment configuration attributes which override the factory defaults.
Fixed newline in test data.
Mechanical refactoring complete.

This is only the fisrt phase designed to extract some functionality out of the main namespace and into its own package. Subsequent commits will massage this code into a more desirable state.
Merge remote-tracking branch 'refs/remotes/origin/master' into leadership-integration-tests

Conflicts:
	cmd/jujud/agent/agent_test.go
	cmd/jujud/agent/machine.go
	cmd/jujud/agent/machine_test.go
	cmd/jujud/bootstrap.go
	cmd/jujud/main.go
	cmd/jujud/unit_test.go
Merged master and changed PR after initial reviews.
Implemented change from review.

- Moved fakeApi to bottom of the file.
- Removed state from MachineAgent as it is not needed.
- Removed commented-out code I missed in the first pass.
- Added comments to some previously private methods.
- Added package documentation to the agent package.