Merge branch 'release-0.93.3' into develop
bump version to development status (0.9999)
check.py: add --git-index option

This option enables only validating the files being committed. Useful
for git pre-commit hook.
completion: merge README.{bash,zsh} into README.rst
add pre-commit git hooks for code quality control

added README.rst with instructions on how to enable StarCluster's git
hooks
awsutils: pass placement_group to request_spot_instances

This is useful when using cc1.4xlarge and cg1.4xlarge spot instances to
get network locality.
git-hooks: fix symbolic link command in README.rst

The symbolic linking command previously used resulted in broken relative
links. Updated the instructions to use $PWD when creating the symbolic
links to git hooks to avoid this.
clean: remove *.pyc from root of the repo dir
git-hooks: use abspaths when determining repo_root
awsutils: print totals when listing spots/instances
cluster: add num_threads to __init__ kwargs

...and pass both num_threads and disable_threads down to
DefaultClusterPlugin and SGEPlugin
cluster: wait for ssh on all nodes concurrently

Use threadpool to wait for SSH to come up on all cluster nodes
concurrently.
cluster: remove redundant keypair region validation

Keypair validation contained an additional check to confirm that the
keypair is in the current region. This is unnecessary given that if we're
able to fetch the keypair at all then we automatically know that the
keypair is available in the current region.
cluster: minor code cleanup
cluster: return boto zone obj from zone property

Updated the cluster.zone property to return the EC2 zone object from
boto instead of the zone's name as a string given that the zone object
contains more info about the zone. Updated all references to self.zone
in cluster to use self.zone.name to get the string name where needed.
cluster: zone validation improvements

In addition to verifying that the zone exists and is available the
_validate_zone method has been updated to check:

1. All EBS volumes are in the same availability zone
2. The cluster's availability_zone setting, if any, matches the EBS
volume(s), if any, zone.
cluster: check that AMI(s) are 'available'

Updated _validate_image_settings to check that node_image_id and
master_image_id are in an 'available' state.

closes gh-102
ebsimage: show progress bar for CreateImage snapshot

When using ebsimage on an EBS-backed instance StarCluster will simply
use the CreateImage AWS API call rather than build the image manually.
In this case the AMI id is immediately returned and a snapshot of the
instance is assembled in the background by AWS. Updated the code in this
case to fetch the AMI immediately, determine the generated snapshot id,
and then show a progress bar on the snapshot progress rather than
use the spinner widget.

closes gh-104
ssh: remove newline when printing remote stderr

This fixes double-spacing in standard error output.
node: add utils for listing devices/partitions

Added two new methods which allow querying devices and partitions:

1. get_device_map() - returns a dictionary of devices->blocks based
on /proc/partitions

2. get_partition_map() - returns a dictionary of partitions->(start,
end, blocks, id) based on 'fdisk -l' output