awsutils: add get_internet_gateways and get_route_tables
cluster: fix VPC public IPs validation

In order for public IPs to work with a non-default VPC the VPC must
have:

1. An internet gateway attached
2. A route table entry linked to the internet gateway and associated
   with the subnet with a destination CIDR block of 0.0.0.0/0

Otherwise, StarCluster will not be able to connect to the instances via
their public ips. Updated the VPC validation to check that these
requirements are met in the case that public_ips=True.
cluster: do not use public IPs with VPC by default

Assigning public IPs by default is flawed given that it requires a
special VPC setup (internet gateway and route to gateway with dest CIDR
block 0.0.0.0/0 associated with the subnet). Configuring this
automagically (which does not happen currently) would be a security risk
and without this configuration (and without running inside the VPC) -
StarCluster cannot connect to the VPC nodes in though they've been
assigned a public IP.

StarCluster no longer assigns public IPs for non-default VPC clusters by
default because of the above issues. Users can enable public ips for
their non-default VPC clusters via the public_ips config setting or the
new --public-ips option to the start command assuming they've properly
configured their VPC to use public ips. If the user hasn't properly
configured their VPC for public ips an error will be raised during
validation. The --no-public-ips option has been preserved so that users
can disable the config setting from the start command.

closes gh-372
users: pass -n to echo to avoid trailing newlines

closes gh-375
cluster: update 'creating cluster' log msg to indicate VPC
docs: update VPC docs to include latest changes

Default now is no public IPs for non-default VPC clusters. Users must
either set PUBLIC_IPS=True or use the --public-ips option to the start
command to enable public IPs. Updated docs to include the VPC
requirements for using public IPs with non-default VPC clusters. Added
notes about connecting to a non-default VPC depending on whether public
IPs are used or not.
start: add -Q, -p, and --no-spot-master options

-Q, --enable-queue - overrides disable_queue=True in the config
-p --no-dns-prefix - overrides dns_prefix=True in the config
--no-spot-master - overrides force_spot_master=True in the config

These options allow overriding the values defined in the config.
bump version to 0.95.3
changelog: add changes for 0.95.3 release
Merge branch 'hotfix-0.95.3' into develop
Update ipcluster plugin to allow specification of num_engines
    This option is useful for memory constrained problems where you
    do not actually want one engine (python process) per core,
    but rather wish to limit it manually.
Fix PEP8 compatibility in ipcluster plugin
Add supervisord based ipcluster plugin
Rename to IPCluster, different module
use  ipcluster
Fix typo
Default to no engines on master
Add support for hub database classes
Add multiverse deps to 13.04 install script and remove rar
Try redirecting stderr and stdout