Added windows service package

* moved upstart to service/upstart
* added windows service management package. The current implementation installs the service as tha user under which juju is currently running. This is done because some installers in windows expect that a real human will run it. The "system" user under which services usually run, does not set a proper user profile as well as other attributes, and that might cause some installers to fail.

The downside of this is that to install a service under a password protected user, you need the password for that user. The password is saved as a secure string decodable only by the juju user. The windows userdata script does save the password inside C:\Juju\Jujud.pass. The Install() method reads the encrypted password in that file and decodes it. It is the used to create the service.
actionResultWatcher :: Implement watcher for actionresults
Merge branch 'master' into actionresults-watcher
Address review comments

Use strings.HasSuffix
Make comment future proof
Correct grammar, despite golint warnings
condense down to one merge function
Refactor actionsWatcher and actionResultsWatcher into one
Add Tests for internal helpers

Test internal helper functions
Merge branch 'master' into actionresults-watcher
merge master
Merge branch 'master' into actionresults-watcher
implement test for errors in mergeIds
better error message
add more comment details
Added retry around apt-get

Added a retry mechanism around apt-get to avoid failures
caused by something else running apt-get.
apt-get is called until success or error different from
the one caused by dpkg lock
Stop jujud earlier in the process
add convenience function comments, rename variable for clarity
Merge branch 'master' into actionresults-watcher
Merge pull request #246 from gabriel-samfira/services

Added windows service package

* moved upstart to service/upstart
* added windows service management package.

PR notes
====

This PR adds a service package and moves the upstart package under it. The Conf type has been moved to service/common as it will be used by the windows service package as well, and all methods attached to it have been migrated to the Service type. This way we avoid depending on a separate type for installing a service, and relying on the service type for removing itself.  

Windows service package notes
====

The current implementation installs the service as the user under which juju is currently running. This is done because some installers in windows expect that a real human will run it. The "system" user under which services usually run, does not set a proper user profile as well as other attributes, and that might cause some installers to fail.

The downside of this is that to install a service under a password protected user, you need the password for that user. The password is saved as a secure string decodable only by the juju user. The windows userdata script does save the password inside C:\Juju\Jujud.pass. The Install() method reads the encrypted password in that file and decodes it. It is the used to create the service.
Merge pull request #351 from johnweldon/actionresults-watcher

actionResultWatcher :: Implement watcher for actionresults

And a couple golint cleanups
Merge pull request #404 from perrito666/1342937_restore_fails_if_apt_running

fix lp:1342937 restore fails if apt running

Stop jujud before everything else so no worker will be running when we destroy the basic bootstrap.
Retry APT to make sure it is not failing because some other apt is finishing.