Trigger rubber:config after deploy:update_code

Also added logic to skip rubber:config and deploy:assets:precompile
during db role bootstrapping.

This commit doesn't break normal deploys (including deploy:migrations
or deploy:migrate) with a deploy.rb from old vulcanizations but
boostrap_db may fail if the assets task requires a database connection.
Re-vulcanizing to replace it with the new deploy.rb will fix this
though.
Added a utility method for converting snake-case words into camel-case.
Convert provider names to camel-case to handle multi-word providers properly.
Moved a bunch of methods from the cloud provider base class to the AWS-specific class.
Added a DigitalOcean provider.
This isn't pretty, but stopped some AWS-specific stuff running on other providers.
Always and only install the ec2-ami-tools package on EC2 instances.
Added a sample configuration for the DigitalOcean provider.
Store the provider for each instance in the instance file.
This shouldn't have been commented out.
Removed a debug print statement.
Fixed args for updated method signature.
Added test for DigitalOcean server creation.
Rubber requires an internal IP address in some places, but the DigitalOcean API doesn't return it, so fake it with the public IP address for now.
run_script & sudo_script should pass their options along to preparee_script.
Fixed a failing test.
Re-implemented most of the security group stuff for DigitalOcean by basing on top of iptables.
Implemented #describe_security_groups by using iptables comments.
Added an install_core_packages task so things needed earlier than install_packages will get installed.
Remove 'text/html' from nginx gzip config to get rid of warning message. See http://wiki.nginx.org/HttpGzipModule#gzip_types

$ sudo service nginx start

nginx: [warn] duplicate MIME type "text/html" in /etc/nginx/nginx.conf:26