Added tests for hookCommand
Slight changes based on feedback

* defer restorer()
* slight change to error message checking
rsyslog: add logrotate for all-machines.log
rsyslog: logrotate comments and docs
rsyslog: logrotate tests
rsyslog: check for logrotate files, updated comments
rsyslog: only render templates once, improve file check test
rsyslog: comments for exported functions
rsyslog: updated documentation, simplified logrotate file rendering.
Merge pull request #189 from gabriel-samfira/add-windows-userdata

Add windows userdata

* refactor cloudinit packages to include support for windows userdata
* fix NewMachineConfig to store corect paths when on windows
* removed dependency on 7zip (python distribution installed by cloudbase-init has the tarfile module)

PR summary
==========

This pull request refactors the way userdata gets generated. It adds an interface to replace the cloudinit.Configure(), ConfigureBasic() and ConfigureJuju() bits. It also adds an interface to do platform specific rendering of path creation and file creation.

As a result of the new interface approach, there is a need to know the series for which we are rendering the cloudinit config before we reach ConfigureJuju. Because of this need, the Tools field either has to be populated in NewMachineConfig, or a new Series field needs to be added at that time. Given that the provisioner already knows this information when calling NewMachineConfig(), I see no reason to throw away this information and rely on a second structure, that is populated later (Tools) to determine the series (I am open to suggestions though).
added sent field to NewMetric factory
need to check for an error here
Merge pull request #558 from mattyw/add-metric-sent-to-factory

added sent field to NewMetric factory

Added a Sent field to factory.MetricParams to allow metric to be added in tests that are already marked as sent.
Using the setDoc for the command documentation.
Merge pull request #511 from wwitzel3/023-rsyslog-logrotate

rsyslog: configure and setup log rotation for all-machines.log

Implements sized based rotation for the all-machines.log.

See: https://bugs.launchpad.net/juju-core/+bug/1078213
Added tests for the help output.
Merge pull request #559 from TheMue/juju-set-use-written-doc

Simple change in juju set to use the already written documentation

A variable named setDoc with the documentation already existed a longer time. But it never has been used as command documentation.

Fixes https://bugs.launchpad.net/juju-core/+bug/1359187
Merge pull request #459 from gabriel-samfira/context-tests

Added tests for hookCommand

This PR fixes a small bug on windows and adds more unit tests for the uniter.
run godeps -t ./... as a test and ensure that dependencies.tsv agrees with what godeps outputs
We will look for godeps first in $PATH and then in $GOPATH/bin.  If it is not found, we'll skip the test.

Also make a windows-only dependency an all-OS dependency so godeps is always the same on all OSes.
Also fix up dependencies.tsv, since it was wrong.... showing why we need this test.
Merge pull request #495 from natefinch/just-run-godeps

Run Godeps as a test

run godeps -t ./... as a test and ensure that dependencies.tsv agrees with what godeps outputs.

This will fail if a dev hasn't run godeps -u, it will also fail if someone adds a dependency on a new external repo and doesn't specify it in dependencies.tsv. 

The nice thing is, this is one of the first tests that'll run if you're doing go test ./... from the root directory, so it should alert you right away if something is wrong.

I also simplified the other test a little...tests always run in the current directory, so you don't have to bend over backwards to read a file in the same directory, just read it.

This has only one added precondition that didn't exist before - godeps must be in your path.  Everyone contributing must have godeps in order to create a valid development environment, but in theory someone may have it in some directory that is not in their path.  I think the added requirement is perfectly acceptable in order to add this level of insurance to our build.  

The other option is we could call it as $GOPATH/bin/godeps which would require you to have used go install, but doesn't force it to be in the path.  Not sure which would be deemed less offensive.