Add VXLAN backend

VXLAN datapath is supported by the kernel thereby reducing the
overhead of TUN device and userspace switching. This patch takes
advantange of DOVE extensions and does not use multicast for port
flooding.

Fixes #18
@pquerna Unfortunately calling NetlinkSocket.Close() will not interrupt NetlinkSocket.Receive(). The reason this works for TCP/UDP/Unix connections is because their Close() method calls into Go runtime internals to interrupt blocked ops. NetlinkSocket is just a thin wrapper over syscall.Socket so there's no magic there to make it work.