Make RunCommands Windows compatible

Emulate the same behavior on windows Systems that you would expect on a linux machine in regards to running command piped via stdin. On Windows, commands are piped to powershell.
Merge pull request #4 from gabriel-samfira/windows-run-commands

Make RunCommands Windows compatible
Added Tar/Untar functionality

Added the tar package which provides functions to tar and untar
files into and from a io.Reader.
This is basically a convenience wrapper around arhive/tar
which is rather rudimentary.
Corrected legacy strings and reviews

Removed outdated references to backup.
Removed incorrect EOF check for directory listing.
Cleaned tests to avoid interdependency with juju/juju.
Small corrections from review comments

Remove remaining legacy code.
Separating untar file writing to be able to use defer for closing.
Added doc for the tar package
Merge pull request #9 from perrito666/add_tar

Added Tar/Untar functionality
utils/syscalls: fix compilation failure on windows/386
Merge pull request #10 from juju/100-fix-utils-symlink-compilation-failure

utils/syscalls: fix compilation failure on windows/386
Update licence info to LPGLv3
Merge pull request #12 from wallyworld/fix-licences-master

Update licence info to LPGLv3
Rename symlink_linux.go to symlink_posix.go

The code compiles just fine on Darwin, and 'posix' seems to fit both
cases better than having 2 copies that are the same implementation.
Merge pull request #13 from jameinel/support-darwin

Rename symlink_linux.go to symlink_posix.go

This allows it to compile on all platforms that have posix Symlink semantics (like in my case OS X).
fix compile failure on windows
Merge pull request #14 from juju/101-fix-windows-compile-failure

fix compile failure on windows
Added close file in WriteYaml

This will fail on windows if the file is still open when renaming
Merge pull request #7 from gabriel-samfira/close-file-in-WriteYaml

Added close file in WriteYaml