Add pseudo-tty support for openssh calls via starcluster.
Merge branch 'hotfix-0.94.2'
PyCrypto >= 2.5
Merge pull request #324 from datacratic/pycrypto_version_2_5_0

PyCrypto >= 2.5
Bugfix: availability_zone is stored in core

Otherwise it's not available in the Cluster object returned by get_cluster.
cluster: fix userdata validation for spot clusters
start: add missing space to -P option help text
cluster: fix unnecessary group id refetch from 44c75b7
fix regressions from merging gh-236

Turns out gh-236 changed the get_cluster, add_node, and remove_node
methods in ClusterManager to always fetch the cluster from the config
which completely circumvents loading the cluster metadata from AWS and
breaks existing functionality. See gh-193 for reference.
sshmaster: remove -P option and dns_prefix kwarg

These kwargs/options aren't really necessary and were only needed due to
gh-236 changing the way StarCluster load's cluster metadata.
terminate: remove --dns-prefix (-P) option

This option isn't needed and was only needed because of gh-236 changing
how StarCluster loads cluster metadata.
addnode, removenode: remove -c option

These commands do not and should not support the -c option. This was
another regression from gh-236.
addnode: remove dns_prefix kwargs and -P options

..in favor of storing the dns_prefix in the Cluster's security group
tags and relying on the Cluster.load_receipt function to restore the
proper cluster settings used at launch time. This removes the need for
the -P options to all commands except the start command.
cluster: store dns_prefix in core settings tag
cluster: consolidate duplicate code in terminate_cluster

The terminate_cluster code added by gh-236 duplicates the work in
EasyEC2.delete_group. Removed this code in favor of EasyEC2.delete_group
and added max_retries=60 and retry_delay=5 kwargs to prevent
EasyEC2.delete_group from looping indefinitely. The default values for
these new kwargs cause EasyEC2.delete_group to abort after retrying for
5 minutes.
cluster: use master_node property in ssh_to_master
node: revert back to using self.alias in is_master()

Another regression from #236
cluster: always use master's zone if not specified

Updated Cluster._get_cluster_zone to fetch the zone from the master node
in the case that no availability zone or EBS volumes were specified.

Updated Cluster.zone property to always fetch the cluster zone using
Cluster._get_cluster_zone.
Merge branch 'fix-gh-312' into develop

closes gh-291
closes gh-312
add support for new c3 instance types