New device type: Adds DPDK's userspace vhost device type

This patch integrates DPDK's userspace vhost sample application as an extra
device. Up to 64 vhost devices are supported starting from port 80. Userspace
vhost supports both Legacy and DPDK virtio implementations in the guest. No
modifications to QEMU are required. Included in this patch is the fd_link
kernel module. This module along with the CUSE module are required for
userspace vhost devices to work. The following steps are required to use
vhost devices in ovs_dpdk:

    1) modprobe cuse
    2) insert fd_link.ko kernel module included in this patch.
    3) Define number of devices when launching ovs_dpdk with "-h" option.
    4) Launch ovs_dpdk with "--socket-mem" option so that the application
       does not consume all hugepages.
    4) When launching QEMU, the tap device should be named using the
       convention "ovs_dpdk_<PORTID>".
    5) QEMU should be launched with the following options:
        -mem-prealloc
        -mem-path <Hugepage directory>
        -vhost=on option appended to netdev options
        e.g. -netdev type=tap,id=net1,ifname=ovs_dpdk_80,vhost=on

Change-Id: Ie5a7e32b51588883c8bbec78ab2840428b477056
Reviewed-by: Mark B. Kavanagh <mark.b.kavanagh@intel.com>
Reviewed-by: Stephen Finucane <stephen.finucane@intel.com>
Reviewed-by: Kevin Traynor <kevin.traynor@intel.com>
Reviewed-by: Mark D. Gray <mark.d.gray@intel.com>
Signed-off-by: Anthony Fee <anthonyx.fee@intel.com>