Added VhostUser app for Virtio-net communication with qemu.

See http://www.virtualopensystems.com/en/solutions/guides/snabbswitch-qemu/

This work includes an extension of 'struct buffer' with metadata for
buffers that are allocated in guest vring memory. Such buffers require
special treatment.

The app is not complete and certain code paths will trigger NYI
assertion failures.

The selftest function bounces traffic from the VM through a
loopback-mode NIC with zero-copy behavior.
vfio: Map Snabb virtual addresses 1:1 onto IOMMU addresses.

This is for the sake of simplicity: when VFIO is in use then
buffer.pointer and buffer.physical will be the same.
packet.lua: Zero-fill the packet struct before reuse.
buffer.lua: Zero-fill the buffer struct before reuse.
buffer.lua: Allocate buffer structs with lib.malloc().

Just to use a handy library function.
pcap.PcapWriter: Added missing deref() of packets after save.
basic_apps.Source: Added flow control on packet output.
lib.lua: Added malloc(ffi_type).