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()
environs/config: remove old pre 1.13 config logic
environs: remove Name method from environs.Environ

This change removes the Name method from the Environ interface.

The rational for this comes from the work at the Identity sprint which has identified that the canonical identifier for an environment is its UUID. This downplays the importance of the Environ.Name() method, so the method has been removed and replaced by the same method availble on Environ.Config(). As these two _MUST_ be the same, the effect on the caller is nil.

It should be noted that this change identified several places where Environ.Name() and Environ.Config().Name() were not reporting the same values and these have been fixed.
worker.Runner now treats nil error as dont-restart
driveby: fix slow tests
Fix review comments
mongo: reduce min/max oplog size

Reduce oplog minimum size to 512MB,
and maximum size to 1024MB.

See comments on bug for backstory
and analysis.

Fixes https://bugs.launchpad.net/juju-core/+bug/1344940
Propagate machine jobs from state to StartInstance

The provisioner is updated to send the correct set
of machine jobs from state through to the broker's
StartInstance call. This allows us to now expose and
load balance the correct set of ports for state
servers in Azure.

Fixes https://bugs.launchpad.net/juju-core/+bug/1347371
Revert "Do not use global sessions"
Merge pull request #372 from juju/revert-361-copy-session

Revert "Do not use global sessions"
Merge pull request #365 from davecheney/149-environs-drop-name-method

environs: remove Name method from environs.Environ

This change removes the `Name` method from the `Environ` interface.

The rational for this comes from the work at the Identity sprint which has identified that the canonical identifier for an environment is its UUID. This downplays the importance of the `Environ.Name()` method, so the method has been removed and replaced by the same method available on `Environ.Config()`. As these _MUST_ be the same, the effect on the caller is nil.

It should be noted that this change identified several places where `Environ.Name()` and `Environ.Config().Name()` were not reporting the same values and these have been fixed.
Merge pull request #291 from gabriel-samfira/windows-run-hooks

Make runCharmHook windows compatible

On windows, hooks (live every other executable) need 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()

This branch depends on https://github.com/juju/juju/pull/287
Merge pull request #371 from axw/lp1347371-worker-provisioner-jobs

Propagate machine jobs from state to StartInstance

The provisioner is updated to send the correct set
of machine jobs from state through to the broker's
StartInstance call. This allows us to now expose and
load balance the correct set of ports for state
servers in Azure.

Fixes https://bugs.launchpad.net/juju-core/+bug/1347371
Merge pull request #368 from axw/lp1344940-oplog-smaller

mongo: reduce min/max oplog size

Reduce oplog minimum size to 512MB,
and maximum size to 1024MB.

See comments on bug for backstory
and analysis.

Fixes https://bugs.launchpad.net/juju-core/+bug/1344940
Adds support for stripped-down Ubuntu images which may not have kvm-ok in their path.
Merge pull request #340 from katco-/lp-1342747-kvm

Adds support for stripped-down Ubuntu images which may not have kvm-ok in their path.

https://bugs.launchpad.net/juju-core/+bug/1342747
Merge pull request #366 from fwereade/worker-finish-nil

worker.Runner now accepts nil worker returns

...and treats them as meaning "this worker has finished and does not need to be restarted".
Merge pull request #362 from davecheney/148-environs-config-cleanup

environs/config: remove old pre 1.14 config logic
Composable API handler, support v1 and v2 login.
Use fail return value for v1 admin Login.