state/api/agent: Entity stores a names.Tag internally
state/api/machiner: store a names.Tag internally
more string -> names.Tag
more string -> names.Tag
remove another must method
remove another must method
remove another must method
Fix bug #1333098. Concurrent access to the objectCache needs to be protected by a mutex.

While there, I discovered a difference race condition in the api Watcher code.
So I fixed that in passing.

The new test fails if you run under '-race', and the tests in cmd/jujud/*TestMachineAgentRsyslog* used
to fail with the race detector and now pass.
all api life methods take names.Tag
Added tests for UTF-8 validity of option values.
Fix compiler crash
gofmt
Merge pull request #151 from davecheney/113-fix-gccgo-crash

Fix compiler crash
environs/instances: expose getMatchingInstanceTypes

The azure provider has some custom instance-type
matching code which can be made to use this function
if it's exposed.
make the WaitGroup a local var, which leaves the tests passing, and avoids the possible race condition.
Merge pull request #148 from axw/environs-instances-matchinginstancetypes

environs/instances: expose getMatchingInstanceTypes

The azure provider has some custom instance-type
matching code which can be made to use this function
if it's exposed.

Also, move instance-type constraint matching into `MatchingInstanceTypes` and friends, simplifying `FindInstanceSpec`.
Merge pull request #145 from davecheney/111-api-params-takes-tag

params.Entity preparations

This PR is a grab bag of changes aimed at isolating all the places where we pass a string to params.Entity and convert them into taking a names.Tag. 

This PR isn't complete, there is still more work to be done before params.Entity.Tag can be made into a names.Tag, but it is a good checkpoint as it gets rid of all the mustParseXXX methods added in a previous PR.
Merge branch 'master' of https://github.com/juju/juju into 112-state-life-takes-a-tag
state methods take a tag as a string, not an id
provider/azure: simplify role size selection, report hardware, fix costs

- Use the newly exported environs/instances.MatchingInstanceTypes
  to simplify instance type selection when force-image-name is used.
- Update role costs and role sizes (bump gwacl rev).
- Emit hardware characteristics by converting gwacl.RoleSize to
  instance.HardwareCharacteristics.

Fixes https://bugs.launchpad.net/juju-core/+bug/1215177