Added ability to define disks via 'ephemeralX.Y'.
Modified cc_mounts to identify whether ephermalX is partitioned.
Changed datasources for Azure and SmartOS to use 'ephemeralX.Y' format.
Added disk remove functionally
merge from trunk
fix pep8
use native python code for wiping partition table

I'm pretty sure the previous code wasn't seeking correctly
and probably writing near the end, but not to the end.

This is simpler and probably faster.
remove verbosity of log.info
Moved ephemeralX.Y handling from Datasource into the cc_disk_setup, which makes it cloud agnostic.
Configure SmartOS Datasource to be region aware
Wrapped use of 'lsblk' to a generator function; removed other fcalls to 'lsblk'
Make {pep8,pylint,test} pass commit.
Added support for 'ephmeral0.<auto|any|0>' for device mappings in disk
formating support.
simplifications and some function renames
try to support ephemeral0.1 in cc_mounts
remove duplicate code
Fixed up issue with attempt to mount nonexistant swap
pep8 and pylint fixes
fix failure to create disks on azure, create new 'dev.part' notation

This fixes azure partition creation, and introduces 'ephemeral0.1'
notation to indicate "partition 1 on whatever device is ephemeral0".
DataSourceSmartOS: remove unnecessary availability_zone attribute

The use of availability-zone or availability_zone is provided by the base
classes's behavior.