Backport: Updating goyaml and goamz versions to latest.

Conflicts:
	agent/format-1.16.go
	agent/format-1.18.go
	cmd/juju/get_test.go
	cmd/juju/status_test.go
	container/lxc/lxc_test.go
	dependencies.tsv
	environs/configstore/disk.go
	juju/testing/conn.go
	provider/common/state.go
	provider/common/state_test.go
	worker/uniter/uniter_test.go
Merge pull request #522 from katco-/v1.20-backport

Backport: Updating goyaml and goamz versions to latest.

Conflicts:
	agent/format-1.16.go
	agent/format-1.18.go
	cmd/juju/get_test.go
	cmd/juju/status_test.go
	container/lxc/lxc_test.go
	dependencies.tsv
	environs/configstore/disk.go
	juju/testing/conn.go
	provider/common/state.go
	provider/common/state_test.go
	worker/uniter/uniter_test.go
Increment stable to 1.20.5 for internal release.
Merge pull request #526 from sinzui/inc-1.20.5

Increment stable to 1.20.5 for internal release.

A1.20.4 tarball was uploaded to Lp for testing...Lp will never let anyone upload the real 1.20.4. We need to increment.
Increment juju to 1.20.6
Merge pull request #537 from sinzui/inc-1.20.6

Increment juju to 1.20.6

Increment juju stable to 1.20.6.
environs/cloudinit: use actual tools version in bootstrap agent.conf

The upgradedToVersion field in the bootstrap machine agent's config
will now match the tools version that's it's going to use, instead of
the version of the client. This avoids unnecesarily triggering
upgrades at bootstrap time (fixing bug #1358078).
provider/azure: custom data test needs to provide a real tools version

...now that MachineConfig.Tools is used to populate upgradedToVersion
in the initial agent.conf.
When starting LXC containers for localprovider, allow tools to be copied in from mounted host dir
go fmt
Patch IsKVMSupported so tests pass on bot
Merge pull request #538 from mjs/1358078-avoid-upgrade-with-bootstrap-upload-tools-1.20

environs/cloudinit: use actual tools version in bootstrap agent.conf (1.20 backport)

The upgradedToVersion field in the bootstrap machine agent's config will now match the tools version that's it's going to use, instead of the version of the client. This avoids unnecessarily triggering upgrades at bootstrap time (fixing bug #1358078).

This is the 1.20 backport of https://github.com/juju/juju/pull/535.
upgrades: added AreUpgradesDefined

This function return true if there are upgrade operations defined
between the version specified and the running software version. The
logic shared by this and PerformUpgrade has been extracted to an
iterator.
cmd/jujud: avoid entering upgrade mode if no upgrade is required

This is a backport of what has already been merged in to trunk.
Patch VerifyPrerequisites so tests pass on bot
Merge pull request #539 from wallyworld/lxc-tools-dir

Copy tools from mounted dir for lxc containers for local provider

Fixes bug: 1357552

Looking at the logs, Juju was unable to curl tools from the http storage server set up for local provider. But only for some containers. This branch makes it so that for lxc containers for local provider, the directory where the tools are built is mounted into the container. The tools URL is patched to point to this location, and thus cloud init performs a file copy rather than an http get.

This is a fix for 1.20 only, since http storage is going away in trunk.

Tested with local provider and also regression tested creating lxc containers on an AWS deployment.
Merge pull request #542 from mjs/1350111-avoid-unnecessary-upgrade-mode-1.20

Avoid unnecessary upgrade mode (v1.20)

This is rehashed backport of various changes from trunk which ensure the machine agent doesn't enter upgrade mode unless it actually needs to. 

The consequences of entered upgrade mode aren't as severe in 1.20 as in 1.21 (API isn't restricted for users) but it's still worth making these changes.
Update deps for utils package update
Merge pull request #551 from wallyworld/juju-utils-update-1.20

Update deps for utils package update

Fixes https://bugs.launchpad.net/bugs/1354685
cmd/jujud: avoid potential race for UpgradedToVersion

Store the initial UpgradedToVersion as the the machine agent starts up
and use that when deciding whether HA initialisation is
required. Previously it could have been possible for the upgrade-steps
worker to update UpgradedToVersion before ensureMongoServer got to
check it.