Support for using Rubber from a local Windows machine

(Remote machines must still be Linux)

- Add local OS detection (Windows, Posix) to BoundEnv class. (To add support for more platforms, see: http://rbjl.net/35-how-to-properly-check-for-your-ruby-interpreter-version-and-os)

- Add ability to write local hosts file in Windows format . Requires to run cmd prompt as admin.

- Writing to etc/hosts and known_hosts files now throw an error if user does not have write access.

- Add 'local_windows' Vulcanizer, including:
     * fixes a known limitation in Bundler when copying/deploying code cross-platform.
     * adds remote library dos2unix
     * add 'use_dos2unix' variable

- If 'use_dos2unix' is set, remote calls 'dos2unix' after code and/or config transfer.
Add Putty support when using Rubber from local windows. Incredibly useful.
Install Passenger/Nginx from packages instead of building by hand.

Upgrading an existing server should be straightforward. Just bootstrap and deploy. Existing Nginx config files will be maintained. You can optionally delete the passenger gem "gem uninstall passenger" afterwards.
Convert tabs to spaces in nginx.conf.

Tabs/spaces were used inconsistently. Spaces seems to be the standard in other config files.
Remove unneeded deploy.task blocks from deploy-passenger_nginx.rb

I believe these were copied from deploy-passenger.rb. I can't see any purpose for them in deploy-passenger_nginx.rb. I've tested creating a server, deploying, restarting Nginx, etc. and everything works without them.
Use update-alternatives to specify which version of Ruby to use.

This configures /usr/bin/ruby to run the version of Ruby installed by ruby-build.

This fixes a problem running passenger-status and passenger-memory-stats. Those commands appear to be hard-coded to use /usr/bin/ruby instead of using the Ruby in the path.
Update passenger_nginx:setup_apt_sources to use sudo_script
Preserve the system path in the Passenger/Nginx processes.

The version of Nginx installed from the Passenger packages no longer preserves system path. System path is needed in some cases. For example ImageMagick uses the system path to find delegates (like Ghostscript).
Remove duplicate nginx_log_dir.
Remove munin passenger plugins.

The format of passenger-status and passenger-memory stats changed with Passenger 4.x. These plugins no longer work. I've never found these plugins to be that helpful because:

- We lock down the number of worker processes so it never changes. No sense in graphing it.
- The biggest memory load in the system by far is the passenger workers. It's just as easy to monitor system memory as a whole vs monitoring the passenger memory. What would be really useful is monitoring memory by worker, which this plugin doesn't do.
replace hard-coded app user with app_user variable
fix dynamic MaxPermSize by replacing single quotes with double quotes for Ruby variable interpretation
Add rails 4 compatibility
Upgraded Graylog from 0.20.0 to 0.20.1.
Upgraded redis from 0.8.6 to 0.8.7.
Preparing the 2.7.4 release.
The Rackspace storage provider seems to work now, so I've updated the test to be valid.
Aligned some code.
Removed handles to responses that we're not using.
Removed some explicit returns.