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
Unbundle iptools, use iptools 0.6.1
setup: bump paramiko and boto to latest versions
balancer: move static settings to __init__
balancer: add JAT_start_time to default qstat fields
balancer: collect all queue info from qstat

Updated SGEStats to collect all queue info in a self.queues list.
balancer: get slot calculations from all.q

Updated SGEStats.count_total_slots and slots_per_host to use the slot
info from all.q rather than naively relying on # slots == # cpus
reported from qhost.
balancer: take slots into account in _eval_add_node

closes gh-69
closes gh-164
balancer: improve qstat parsing

* Updated SGEStats.parse_qstat to parse qstat xml generically without
  requiring a static list of xml fields

* SGEStats.parse_qstat now adds the currently allocated queue to the job
  dict for running jobs

* Refactor job_multipy to _count_tasks and update to properly count the
  number of tasks in all possible job arrays.

* Use qstat's -r option to get full resource requirements for jobs in
  the xml output.
balancer: handle qacct error on fresh SGE install

On a fresh SGE install where no jobs have yet been submitted you get an
error about a missing accounting file. This error goes away as soon as
someone qsub's a job. Updated the code to catch this error and check
whether the accounting file is missing. If it is then the error is
ignored otherwise the error is raised.
balancer: fix node count in _eval_remove_node

Get the number of cluster nodes from the cluster object rather than
relying on qhost. qhost only shows execution hosts in the cluster so if
any nodes are not an exec host (e.g. master) using qhost for a node
count is not accurate.
balancer: update sge tests for latest parser changes

The parser now uses 'qstat -f -r -xml' which produces more detailed
output than before including details about each SGE queue. Updated the
SGE load balancer test templates to match the expected output from
'qstat -f -r -xml'.

The total slot count and slots per host counts now come from qstat
rather than qhost given that slots are queue-specific and are not 1-1
with # of cpus on an exec host. Moved the assertions around total slot
count and slots per host into the qstat tests.
Merge branch 'loadbal-slot-calc-fix' into develop
When jobs are in the queue and no slots exists, immediately add a node
Merge pull request #260 from datacratic/quick_add_node_when_none

When jobs are in the queue and no slots exists, immediately add a node
FIX: only clean-up placement groups in supported regions

Trying to use *any* AWS API call related to placement groups in regions
that do not support placement groups fails with an UnsupportedOperation
error (including DescribePlacementGroup). Updated
Cluster.terminate_cluster to check whether the cluster's region supports
placement groups first before attempting to fetch and clean-up the
cluster's placement group (if any).

closes gh-261