Update the services to use the new storage backend classes

Agent no longer cares about the exact filesystem path. It
only selects the proper metadata backend (fs or block) and
passes the necessary arguments for the constructor using the
set_storage_domain call.

The broker associates the storage domain with the agent's
connection and uses it automatically to process all requests
by this agent connection. This allows us to have multiple agents
with separate storage domains in the future.

If the actual path to the device/file is still needed then
the broker will return it from a new get_service_path call.

The default configuration for now is fs based backend (NFS,
iSCSI or Gluster).

The api of client.get_*_direct methods changes to use the
uuid and storage domain type so the path computation is done
only on single place.

Change-Id: I0ad1567c53af561e918be69b8f1b33f75b77fc05
Signed-off-by: Martin Sivak <msivak@redhat.com>