Merge branch 'hotfix-0.95.2'
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
listspots: show spot status and status message
awsutils: use progressbar in wait_for_propagation
cluster: always wait for propagation after launch

* Updated the _create_flat_rate_cluster and _create_spot_cluster methods
  to always wait for instance and spot request propagation regardless of
  cluster_size (ie not just when cluster_size>1).
* Minor refactor of master node launch code in _create_flat_rate_cluster
cluster: improve wait_for_active_spots

Require active spots to also have an instance_id allocated before
exiting the wait loop. This ensures that the spot requests are 'active'
and also have an instance ID that we can use in the
'wait_for_propagation' call later on. This *might* fix
InstanceDoesNotExist errors related to eventual consistency when using
spot nodes (gh-377).
code cleanup for latest pep8/pyflakes
Merge remote-tracking branch 'trunk/develop' into vanilla_improvements

Conflicts:
	starcluster/cluster.py
	starcluster/static.py