qemu-img: add support for skipping zeroes in input during convert

we currently do not check if a sector is allocated during convert.
This means if a sector is unallocated that we allocate a bounce
buffer of zeroes, find out its zero later and do not write it
in the best case. In the worst case this can lead to reading
blocks from a raw device (like iSCSI) altough we could easily
know via get_block_status that they are zero and simply skip them.

This patch also fixes the progress output not being at 100% after
a successful conversion.

Signed-off-by: Peter Lieven <pl@kamp.de>
qemu-img: fix usage instruction for qemu-img convert

Signed-off-by: Peter Lieven <pl@kamp.de>
qemu-img: add option to specify alternate iobuffer size

since the convert process is basically a sync operation it might
be benificial in some case to change the hardcoded I/O buffer
size to an alternate (greater) value.

Signed-off-by: Peter Lieven <pl@kamp.de>
block/iscsi: set bdi->cluster_size

this patch aims to set bdi->cluster_size to the internal page size
of the iscsi target so that enabled callers can align requests
properly.

Signed-off-by: Peter Lieven <pl@kamp.de>
qemu-img: add option to align writes to cluster_sectors during convert

Signed-off-by: Peter Lieven <pl@kamp.de>
qemu-img: add option to show progress in sectors

Signed-off-by: Peter Lieven <pl@kamp.de>