node: improve Node.get_device_map function

Updated the code to more accurately return available block devices on
the node using regular expressions with fdisk and /proc/partitions. This
method also handles a variety of block device naming schemes (e.g.
/dev/hda, /dev/sda, /dev/sdj1, /dev/cciss/c0d0, etc).
node: improve get_partition_map function

Updated the code to properly handle the 'boot' flag and hex system id
output from fdisk. Also improved the partition matching regular
expression to handle a variety of device formats (e.g. /dev/hda,
/dev/sda, /dev/sdj1, /dev/cciss/c0d0, etc)
clustersetup: ebs volume mounting improvements

Use master.get_device_map and master.get_partition_map when mounting EBS
volumes in the default StarCluster plugin.
cluster: attach all external EBS volumes at once

The previous code would attach and wait for each volume individually.
Updated the code to speed this process up by attaching all volumes at
once and waiting for them afterwards.
balancer: maintain a single instance of SGEStats

This prevents resetting the internal SGEStats job data on each iteration
which was causing the average duration and wait time stats to alternate
from a positive value to 0.

See:

https://github.com/jtriley/StarCluster/commit/1e9cbed49888b0b6c9f9582fb28e42d92e64875d#commitcomment-3575015
config: support [vol] shortcut in config

closes gh-250
Merge branch 'develop' of git://github.com/jtriley/StarCluster into vanilla_improvements
Merged latest trunk
fixing loadbal addnode
Merge branch 'vanilla_improvements' into datacratic_dev
fix related to recent merge
Don't wait for cluster stabilize to add a node when there are no slots
Merge branch 'quick_node_add_when_no_slots' into vanilla_improvements
Merge branch 'vanilla_improvements' into datacratic_dev