Enable windows service in juju

On windows, services need to be able to respond to events in order to be compatible with SCM (Service Control Manager). This PR detects whether we are running from a command line or if we are trying to run it as a service, and executes the appropriate routine.

* Added $ErrorActionPreference="Stop", in all powershell commands in github.com/juju/juju/service/windows. ErrorActionPreference is a powershell variable that dictates how errors should be handled. By default its set to "Continue". Setting it to "Stop" is the equivalent of -e (Stop on error) in BASH.
* updated dependencies.tsv to include the WriteYaml windows fix in utils, a fix for named pipes and to add the windows service package


It a matter of personal taste, but I would prefer to see this as:
```
run := func() error {
		go Main(os.Args)
		return nil
	}
stop :=  func() error {
		os.Exit(0)
		return nil
	}
err = s.Run(run, stop)
```

That way the comments aren't needed