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
Added MakeMachine mathod to factory.
Factory methods for charms and services.
Add unit methods to factory.
Update style, some code changes.
Comment updates.
Factory improvements - style fixing.
Only copy session if a database login has been performed