qemu-io: New option "-a" to aio_read and aio_write

This option will enable accounting of aio requests.

Signed-off-by: Fam Zheng <famz@redhat.com>
qemu-iotests: Add VM method qtest_cmd() to iotests.py

This will allow test case to run command in qtest protocol. It's
write-only for now.

Signed-off-by: Fam Zheng <famz@redhat.com>
qemu-iotests: Allow caller to disable underscore convertion for qmp

QMP command "block_set_io_throttle" expects underscores in parameters
instead of dashes: {iops,bps}_{rd,wr,max}.

Add optional argument conv_keys (defaults to True, backward compatible),
it will be used in IO throttling test case.

Signed-off-by: Fam Zheng <famz@redhat.com>
qemu-iotests: Add 080 for IO throttling

This case utilizes qemu-io command "aio_{read,write} -a -q" to verify
the effectiveness of IO throttling options.

The "-a" option will cause qemu-io requests to be accounted.

It's implemented by driving the vm timer from qtest protocol, so the
throttling timers are signaled with determinied time duration. Then we
verify the completed IO requests are within 110% of bps and iops limits.

Signed-off-by: Fam Zheng <famz@redhat.com>