Make runCharmHook windows compatible

On windows, hooks (live every other executable) needs an extension. This branch adds support for running powershell and batch scripts as hooks. For powershell, we need to pass in exta arguments to exec.Command()
Add identity provider interface and agent id provider implementation
Valid login test for agent identity provider.
Merge pull request #1 from tasdomas/idprov

Valid login test for agent identity provider.
Add failing tests
Style fixes.
Merge Michael's work and fix some tests
Merge branch 'master' into id-prov
Add user identity provider
Fix some collection names
Copy sessions in pinger
Refactor again...
Update dependencies.tsv
Only copy session if a database login has been performed
Merge master and resolve conflicts
Fix megawatcher inconsistency
Mongo id fields should be specified as _id, not _id_.
Code review tweaks
Merge pull request #363 from tasdomas/user-id

Mongo id fields should be specified as _id, not _id_.

Simple fix - looks like mongo id for the user document was not being specified correctly.
Merge branch 'master' of https://github.com/juju/juju into id-prov

Conflicts:
	state/apiserver/admin.go