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.
On Wed, Jul 9, 2014 at 2:51 PM, John Weldon <notifications@github.com>
wrote:

> In agent/agent.go:
>
> >  	// Note: must use path, not filepath, as this
> >  	// function is used by the client on Windows.
> > -	return path.Join(dataDir, "agents", agentName)
> > +	return path.Join(dataDir, "agents", tag.String())
>
> Doesn't tag.String() return the agentName prefixed by the tag type? It
> seems this would change the path being built here from what it was before?
>
It does, and I believe this is correct, for example the path on disk, I
believe, is something like /var/lib/juju/agents/machine-0, or
/var/lib/juju/agents/unit-mysql-0


> —
> Reply to this email directly or view it on GitHub
> <https://github.com/juju/juju/pull/267/files#r14693486>.
>