support for windows in ChangeAgentTools

The windows Symlink function checks for the existance of the source file before creating a symlink. If it cannot stat the file, then it errors. This is a limitation of how junction points work. You may not create a junction point (symlink) to an inexistent file.
wip
Add the database master upgrade target, and check for valid steps.
Worked out if master, now for extra testing.
state.annotator now takes a tag
parseTag now takes a Tag
Merge pull request #316 from davecheney/137-names-refactor-part-ix

137 names refactor part ix

* state.annotator now takes a tag
* parseTag now takes a Tag, rejects nil tags.
Merge pull request #226 from gabriel-samfira/windows-toolsdir

support for windows in ChangeAgentTools

The windows Symlink function checks for the existance of the source file before creating a symlink. If it cannot stat the file, then it errors. This is a limitation of how junction points work. You may not create a junction point (symlink) to an inexistent file.
update juju utils to fix windows build breakage
Merge pull request #320 from davecheney/139-update-juju-utils

update juju utils to fix windows build breakage
Add a test for the upgrade targets.
Refactoring post review.
Merge pull request #321 from howbazaar/schema-upgrade-type

Schema upgrade type

Add an upgrade target for DatabaseMaster, that should be used for any db-schema changes.

When the machine agent runs the upgrade steps now, it also checks to see if it is the master, and if so, uses this to determine the steps.
Update to fix licence dependencies
Removed unused fakeRestart func
Fix gnuflag rev
Merge pull request #325 from wallyworld/license-dependnecies

Update to fix licence dependencies

Update to fix licence dependencies
worker/instancepoller: update to HEAD of juju/ratelimit
cmd/jujud: retry upgrades on failure

Given that we currently have no way of rolling back upgrades it's
worth retrying upgrades in case of transient errors. Logging around
upgrades has been improved a bit as well.

Future changes will improve the handling of upgrade error reporting
further (via agent status).
Merge pull request #322 from mjs/retry-upgrade-steps

cmd/jujud: retry upgrades on failure

Given that we currently have no way of rolling back upgrades it's worth retrying upgrades in case of transient errors. Logging around upgrades has been improved a bit as well.

Future changes will improve the handling of upgrade error reporting further (via agent status).