WIP: 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
The `err` disposal feels a bit yuck to me. It has just occurred to me that this can be simplified by using `runtime.GOOS` instead. We don't need to use the series, as we're only interested in what the current operating system is.

Alternatively, if we *do* want to use the series because of testing, then doing the OS translation at the global scope and discarding the error are both inappropriate.