Refactor LibvirtXmlBuilder._get_name into object models.

funtion _get_name was moved to helpers.helpers.composite_name, and
 will now get its size setting as an argument. This allows for it to
 be reused by other drivers.

Attached full_name property to the ExternalModel class, this allows for
 more natural usage of the composite_name.

Change-Id: I38d372df78fd9e6a5875bfe70831a230473164cc
Addtion of rbd backend support in libvirt

Adds Pool and PoolHost models. Pool.sync() is called by 'dos.py sync' in
 order to load any pools from libvirt. If you define a new pool, or modify an
 existing one, you will use 'dos.py sync' to effect these changes in the db.

If a pool of type rbd is defined, then Pool additionally needs:
 source : the name of the rados pool
 hosts = [PoolHosts(name, port), ...] : the host and port of any of the
    ceph monitors
 auth_username : the ceph user with access to the _source_ rados pool
 secret_uuid : the uuid that libvirt assigned the secret that you used
    when creating the Storage Pool in libvirt.

these are normally loaded out of libvirt, you can call Pool.define() if you
 want devops to create the StoragePool for you.
libvirt_rbd: part 2, fix iso upload