storagevolume: Download remote images to a storage pool

In order to simplify the creation of a remote image in Kimchi, the user
will be able to provide a remote URL and the Kimchi server will download
it and put it on a storage pool.

Download a remote image to a storage pool

Signed-off-by: Crístian Viana <vianac@linux.vnet.ibm.com>
storagevolume: Check storage pool before adding a volume

In order to add a volume to a storage pool, it must not be one of a
read-only type, it must be active and the volume name must not already
exist. That verification should happen regardless of the storage volume
creation method (i.e. download, upload).

Add the verifications mentioned above when creating any type of volume by
adding them to the common "create" function.
Also, fix a test case which was broken (commit ff1bb81) because a
storage volume with an existing name was being added.

Signed-off-by: Crístian Viana <vianac@linux.vnet.ibm.com>
storagevolume: Add download progress to task

The download operation can take a long time, so it's nice to have some
way to track its current progress.

Update the task's message with the number of bytes downloaded. The
format is "<bytes downloaded>/<total bytes>". If the number of bytes
cannot be read from the remote URL, <total bytes> will be "-".

Signed-off-by: Crístian Viana <vianac@linux.vnet.ibm.com>
storagevolume: Set target URI when creating Task

Commit f8f43b3 has exposed the field "target_uri" out of the Task structure.
The function "storagevolumes_create" creates Tasks to perform that operation
asynchronously but the corresponding "target_uri" isn't set.

Set the field "target_uri" when creating a storage volume according to
the format "/storagepools/<pool-name>/storagevolumes/<vol-name>".

Signed-off-by: Crístian Viana <vianac@linux.vnet.ibm.com>