add def_value_str and use it in qemu_opts_print

qemu_opts_print has no user now, so can re-write the function safely.

qemu_opts_print will be used while using "qemu-img create", it will
produce the same output as previous code.

The behavior of this function has changed:

1. Print every possible option, whether a value has been set or not.
2. Option descriptors may provide a default value.
3. Print to stdout instead of stderr.

Previously the behavior was to print every option that has been set.
Options that have not been set would be skipped.

Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
V12-0001: make def_str_value be the real default value.

v11->v12:
1) make def_str_value be the real default value.
Create four QemuOptsList related functions

This patch will create 4 functions, count_opts_list, qemu_opts_append,
qemu_opts_free and qemu_opts_print, they will be used in following
commits.

Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
0002-v12 rename function names

v11->v12:
1) use exsiting naming convertion: qemu_opts_*
2) use exsiting loop code style.
3) change merge_lists source.
4) other small changes.

Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
Use QemuOpts support in block layer

This patch will use QemuOpts related functions in block layer, add
a member bdrv_create_opts to BlockDriver struct, it will return
a QemuOptsList pointer, which includes the image format's create
options.

And create options's primary consumer is block creating related
functions, so modify them together.

Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
0003 - v12
0004