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.