threadpool: clear the exceptions queue in wait()

Updated ThreadPool.wait() to drain all exceptions out of the exception
queue everytime it raises a ThreadPoolException. This keeps the
exception queue from potentially growing endlessly and also prevents
raising old exceptions.
add new ipcluster options to config template
awsutils: fix show_console_output when output is None

Avoid NoneType error by replacing the output with an empty string in the
case that it's None.

Added info message about no console output being available in the case
that the output is None.
Remove #!/usr/bin/python

progressbar.py is a library file and is installed non-executable and so a #!/usr/bin/python is useless (and triggers a rpmlint warning).
Merge pull request #242 from opoplawski/Fedora

Remove #!/usr/bin/python
minor code clean-up in sge plugin
sge: use 'qconf -mattr ...' to update existing PE

Do not use the initial parallel environment file template to update an
existing paralell environment. Doing so can clobber potentially
customized parallel environment settings. Use 'qconf -mattr pe ...'
instead to update individual settings.
put/get: skip loading metadata when fetching cluster

Avoids issues like plugin loading errors when using put/get. The put/get
commands do not use plugins or any other cluster metadata.
awsutils: fix endpoint output in list_regions
listinstances: list instance tags in output
Supports multiple ipclusters via the --cluster-id option
  - flexibly way to choose how ipclusters restart/stop/start via ClusterID config
    - this provides users with option to not kill active clusters
  - backwards compatible

TODO:
  - update starcluster documentation
  - option to specify ClusterID class in starcluster config
  - ln -s ~/.ipython/profile_default/security/{<current json>,ipcontroller-[engine|client].json}
can now specify ClusterID class in starcluster config
symlink current cluster_id to ipcontroller-client.json for backwards compatibility.  nothing exists to remove this if the current cluster dies, though that doesn't negatively affect new clusters created.

lint - remove 80+ column lines

change json symlink to cp
log cluster id.  make more vpc compatible by preferring public dns/ip but falling back to private if unavailable.  Bug fix comm bash call
make starcluster more graceful whilst removing nodes
node doesn't show up in qconf -sh with this line added
doesn't consider master node when balancing cluster as my master is a t1.micro instance.
added some doc
added a -1 to the running nodes to remove master from teh total number of running nodes
fix if there are no available slots to add a node