Support None as a valid config value
Support alternate listening address and port

The linux kernel binds all IPs on the vxlan port when the vxlan
kernel module is loaded.

To support running vxsnd on a box with the module loaded we need
to be able to listen to an alt port but send to the vxlan port.
Additionally we want to support listening on for VXLAN packets
on an alternate address. This allows us to use NAT on the box to
deliver the packets to the alternate address and port.

This patch introduces 3 new options to vxsnd:

vxlan_listen_address:
    If set vxsnd will listen for incoming VXLAN packets on this
address.

vxlan_listen_port:
    If set vxsnd will listen for incoming VXLAN packets on this
port.

vxlan_dest_port:
    If set vxsnd will send VXLAN packets to this port.
Refactor to support multiple vxfld message types

Refactor how vxfldpkt.py works to support having multiple
protocol versions and messages types.
General cleanup of unused code
Re-factor VXLAN/VXFLD packet classes

Move the VXLAN and VXFLD packet classes into a pkt directory and
convert them into proper modules.
Add support for proxying VXLAN packets

The idea behind head-end replication is that all the nodes in
a given rack will run VXSND locally. Each VXSND will replicate
VNI info to each other and a TOR. Additionally any VXLAN
processed locally will also be proxied to the TOR. The TOR
will in turn be able to proxy to all other TORs which can
deliver the message locally to the rack.

To do this we create a new Proxy type of VXFLD message. A Proxy
message allows a vxsnd node to send a VXLAN packet to a remote
vxsnd node and have the remote vxsnd node process it as if it
recieved it locally on its VXLAN port.

This commit introduces 2 new config options to vxsnd:

vxfld_refresh_servers:
    List of servers to replicate VNI data to. This option replaces
the older "severs" option. servers is still supported and if set
will be added to the list of IPs in vxfld_refresh_servers

vxfld_proxy_servers:
    List of servers to proxy VXLAN packets to for head-end
replication mode.

vxfld_listen_address:
    Address to list for vxfld messages, defaults to 0.0.0.0.

    Note: This option *MUST* be set if you are setting
vxfld_proxy_servers. Failure to set this option will result in
looping proxy messages.

enable_flooding:
    If set, vxsnd will act as an intermediate proxy and will also
flood proxy VXLAN packets to local VNIs. Set to false if you want
vxsnd to operation in proxy only mode. Defaults to true.
Add various tools for testing.