state, etc: state.Info.Tag is now a names.Tag not a string
Merge branch 'master' of https://github.com/juju/juju into 132-names-refactor-part-v

Conflicts:
	agent/agent_test.go
	environs/cloudinit/cloudinit_test.go
	environs/cloudinit_test.go
	state/open.go
Merge branch 'master' of https://github.com/juju/juju into 132-names-refactor-part-v
fix panic when info.Tag is nil (user is admin)
state/apiserver: keep backups in env storage

Whenever the backup API is called keep the backup tarball in
environment storage in addition to returning it to the client. Among
other things, this will be used to support rollback when upgrades
fail.
state/apiserver: close backup files once returned
Merge pull request #278 from mjs/backups-in-env-storage

state/apiserver: keep backups in env storage

Whenever the backup API is called keep the backup tarball in environment storage in addition to returning it to the client. Among other things, this will be used to support rollback when upgrades fail.

There is more work to be done to add APIs to support management of these backups. This will be done at a later date by the Moonstone team.
Merge branch 'master' of https://github.com/juju/juju into 132-names-refactor-part-v

Conflicts:
	state/apiserver/backup_test.go
Merge pull request #267 from davecheney/132-names-refactor-part-v

state, etc: state.Info.Tag is now a names.Tag not a string

This change redefines state.Info.Tag as a names.Tag. 

This uncovered a lot of nastiness in the tests where an invalid tag was being used as a test fixture and then the incorrect result was asserted. An example of this is the agent.ConfigFile stuff which we all know _should_ write a file like fmt.Sprintf("%s-%s", tag.Kind(), tag.Id()), but the test fixtures were wrong.