Use install instead of installmissing if Chocolatey >= 0.9.8.24

X-ref: #13980

This also adds a chocolatey.chocolatey_version function and does some
DRY cleanup so that the error message and exception are raised in
_find_chocolatey() instead of in 6-8 different places.
Add cygwin package installation

Currently only hadles adding packages. Does not remove packages. It is
setup to update packages any time it is run, but there is no independent
update functionality.
Curently no unit/integration testing is done. I haven't wrapped my head
around the way the mocking and stuff is done yet.
Added update and uninstall functions

Should be able to remove and update things now. Also doesn't always
update when installing anymore. Update now only called via
salt['cyg.update']()
Added update and uninstall functions

Should be able to remove and update things now. Also doesn't always
update when installing anymore. Update now only called via
salt['cyg.update']()
Merge branch 'addCygwin' of github.com:s7726/salt into addCygwin
Installation is now working

usage:

cyg.installed:
    - names:
      - dos2unix
      - ssh
      - vim
      - tmux

Some of you may notice that 'ssh' is not a cygwin package, 'openssh' is. Currently it is reported as successfully installed. My next step is to check the list of named packages against the available packages and return false if they don't exist.

Have not tested package removal.
Now checks if the package name is valid

Currently fetches the entire package listing for each check. Next step
is to cache the packages for each session. I read about one of the
__var__'s that salt has that does caching like that.
Cache the package listing per run
Package removal is working
Added ability to update all installed packages

Cygwin does not appear to have a way to just upate individual packages.
Also probably not a good idea since it can all be pretty tightly
coupled.
Pep8'ified
Some more style fixes, swap before and after diff

Only functional change is to fix the order of the diff. It is correct
now.
Make salt cloud bail on error'ed ssh commands
Fallback to `rsync` if `scp` is not available.

This happens with the Cent 5 image from Rackspace
No need to format the string
Remove unused variable
Remove unused variable
Add `allow_failure` to `root_cmd`
SmartOS esky build environment instructions cleanup
fix has_nova