config: config file path from STARCLUSTER_CONFIG env. variable
config: documentation for STARCLUSTER_CONFIG

Updated "Configuration File" documentation to describe how to use the
new STARCLUSTER_CONFIG environment variable.
Do not bundle optcomplete
fix optcomplete item in requirements.txt list
add optcomplete wrapper module 'completion'

This module contains StarCluster's customizations to the optcomplete
module. Updated all code to use StarCluster's completion module instead
of optcomplete directly.
Merge branch 'unbundle-optcomplete' into develop

closes gh-266
fix optcomplete item in requirements.txt list (again)
requirements: optcomplete 1.2.0 -> 1.2-devel

ARGHHHHH!!!!!!!
sge: set default pe allocation_rule to $fill_up
cluster: minor refactor to listclusters

This reduces the number of calls to Node.attached_vols property when
displaying attached EBS volumes in listclusters. This simply reduces the
number of warnings displayed in the case that the cluster's AMI is
missing the root block device in it's block device mapping (e.g. CentOS
6.x from AWS marketplace).
setup: optcomplete-1.2.0->1.2-devel
cluster: fix instance filtering for default VPC

Amazon EC2 now enables a 'default' VPC for all new users:

http://aws.typepad.com/aws/2013/03/amazon-ec2-update-virtual-private-clouds-for-everyone.html

For existing users: any zones that haven't been used will automatically
be configured with a default VPC. Any zones that have been used before
default VPCs will continue without a default VPC.

Any security groups created in a zone with a default VPC will
automatically be VPC-enabled.

This new EC2 feature inadvertantly broke StarCluster's group-name
instance filtering given that group-name can only be used for instances
belonging to a non-VPC security group - otherwise the
instance.group-name filter must be used. StarCluster previously assumed
that it always created a non-VPC security group for each cluster. For
clusters launched in a default VPC-enabled zone this resulted in
StarCluster infinitely waiting for instances to activate due to an
incorrect instance filter.

This patch to the Cluster.nodes property simply checks whether the
cluster's security group was automatically assigned a default VPC id or
not and configures the instance filter accordingly. This patch should
work for both new and existing users regardless of whether they have a
default VPC in a given zone or not.

Thanks to @cl-s, @syoyo, and @izharw for helping to debug and fix this
issue.

closes gh-265
replace group-name filter with instance.group-name

Use instance.group-name instead of group-name everywhere when filtering
instances. Turns out I was wrong about instance.group-name being a
VPC-only filter. This filter appears to work for both default VPC and
non-VPC instances and is a much better fix for #265 than the previous
commit. Thanks to @syoyo for suggesting the proper fix all along.

closes gh-265
closes gh-270
awsutils: add properties for platforms/default_vpc

Added EasyEC2.{supported_platforms, default_vpc} properties which return
the supported platforms (VPC or EC2+VPC) and the default vpc if any.
Updated EasyEC2.connect_to_region to clear these cached values whenever
switching regions. We're not currently using this anywhere but it's nice
to have for debugging and also could come in useful when merging VPC
support later on.
cli: catch KeyboardInterrupt within main()
setup: only use 'scripts' kwarg if there's no setuptools
plugins: add boto plugin

This plugin configures $HOME/.boto on the cluster for CLUSTER_USER
either by automatically generating one using the currently active
StarCluster credentials or by copying a boto config from the client's
machine.
start: do not use [] for -U option's default value

Setting a default of [] instead of None results in the option appearing
in the specified_options_dict even when -U is never specified. The
specified_options_dict ultimately overwrites the config with any options in the
options dictionary that are not None. Since the default value for -U,
[], is not None this caused the userdata_scripts list from the config to
be replaced with []. This patch fixes the issue by setting the default
value to None which removes it from the specified_options_dict all
together provided the user did not specify -U.
config: expand ~ and env vars in userdata_scripts list

Added a callback to the userdata_scripts cluster config setting that
exands ~ and all environment variables in each path.
cli: log all BaseException stacktraces to debug log

The cli module catches all exceptions that subclass StarCluster's
exception.BaseException and formats them as 'user-friendly' error
messages without stacktraces. This means if there's a bug in the code
that raises these types of exceptions it can be hard to debug where the
underlying issue comes from. Updated the code to always log the
stacktrace of these exceptions to the debug file in case we need to
debug code that raises them.