doc: schema: Add basic documentation for the ivshmem support

This patch documents XML elements used for support of ivshmem
devices.

About ivshmem, please see the following documentation:
http://git.qemu.org/?p=qemu.git;a=blob;f=docs/specs/ivshmem_device_spec.txt
(Ivshmem documentation for qemu will be updated soon:
https://lists.nongnu.org/archive/html/qemu-devel/2014-07/msg02974.html)

In the devices section in the domain XML users may specify:

- For ivshmem device using an ivshmem server:

 <ivshmem use_server='yes' role='master'/>
   <source file='/tmp/socket-ivshmem0'/>
   <size unit='M'>32</size>
   <msi vectors='32' ioeventfd='on'/>
 </ivshmem>

 Note: the ivshmem server needs to be launched before
       creating the VM. It's not done by libvirt.

- For ivshmem device not using an ivshmem server:

 <ivshmem use_server='no' role='peer'/>
   <shm path='ivshmem1'/>
   <size unit='M'>32</size>
 </ivshmem>

Signed-off-by: Maxime Leroy <maxime.leroy@6wind.com>
conf: Parse and format ivshmem device XML

This patch adds configuration support for the ivshmem device
as described in the schema in the previous patch.

Signed-off-by: Maxime Leroy <maxime.leroy@6wind.com>
qemu: Add cap flag QEMU_CAPS_IVSHMEM

Ivshmem is supported by QEMU since 0.13 release.

Signed-off-by: Maxime Leroy <maxime.leroy@6wind.com>
qemu: Build command line for ivshmem device

This patch implements support for the ivshmem device
in QEMU.

Example from this xml:

    <ivshmem server='yes'' role='master'/>
      <source file='/tmp/socket-ivshmem0'/>
      <size unit='M'>32</size>
      <msi vectors='32' ioeventfd='on'/>
    </ivshmem>

The following QEMU line is built:

   -device ivshmem,size=32m,vectors=32,chardev=charivshmem0,msi=on,
	ioeventfd=on,role=master
   -chardev socket,path=/tmp/socket-ivshmem0,id=charivshmem0

Note: PCI hotpluging has not be implemented.

Signed-off-by: Maxime Leroy <maxime.leroy@6wind.com>
tests: Add tests for ivshmem device handling

Add XML parsing and qemu command line tests for the ivshmem
device support.

Signed-off-by: Maxime Leroy <maxime.leroy@6wind.com>