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.
commands: sort all instance type option lists
removing @ from security group prefix, adding vpc_id , subnet_id to cluster settings
using private_ip_address when connecting to a vpc node : that's what vpc is about :)
if vpc_id and subnet_id in config args the use a VPCluster otherwise go with Cluster
piping up EasyEc2 to handle vpc mainly adding vpc_id arguments
adding VPCCluster class/ Clustermanager needs to load config file at this moment
adding vpc subnet options to template
adjust security group authorization to use the connection so it works with vpc
fixing sshtomaster by adding private_ip_addr if instance is a vpc instance
adding addr attribute as i will be using this in other plugin's
check's if instance is vpc . if not uses dns_name otherwise uses
the dns_name. need to think about elastic_ip
take care of elastic ip as well
minimum required to get vpc working