multi-iovec and jumbo frames

This handles some issues on "bigger than trivial" packets.

- sets the maximum frame size (register MAXFRS) to 9000+18 bytes.  It could be nice to use a configurable option, but it's a chip-wide setting, so it's likely better to simply set to the max.

- fixes the too-many-releasing bug by incrementing the reference counter of the packet for each descriptor in the transmit queue.  This makes it possible to send a multi-iovec packet without coalescing it first.

- allows the NIC to split packets that are bigger than a single buffer (currently 4K).  Both `:can_receive()` and `:receive()` have tight loops to check for an EOP descriptor after some ready-but-partial descriptors.  This could be manually unrolled (just 3 iterations with current defaults) if benchmarks prove it to be a performance regression.

- implements the `:stop()` method for the app, in the VF case, it calls the PF if it's the last VF.  This is necessary to allow changing configurations.  (seem unrelated, but some settings (frame size in this case) persist even across process invocations, so it's impossible to properly test it without `:stop()`)
Merge pull request #161 from javierguerragiraldez/multi_iovec

Intel10G driver: multi-iovec and jumbo frames
core/lib.lua: add endian conversion helpers written in Lua

avoid C function call overhead while using C.xxxx counterparts
keyed_ipv6_tunnel: add missed conversion to network order for session id

use endian conversion helpers
packet_filter: use endian conversion helpers
keyed_ipv6_tunnel: add optional default_gateway_MAC config parameter
lib/macaddress: add error handling
do not hardcode pci devices
fix vlan filters

Each VF app can be declared on a single VLAN, the NIC will add 802.1q tags on every outgoing packet, and strip tags on incoming packets.
Merge pull request #163 from justincormack/pcidevs

intel_app: do not hardcode pci devices
packet_filter bug workaround: Disable JIT on generated code.

Theory is that JIT of packet filter rules is triggering a LuaJIT bug,
possibly related to:

  http://www.freelists.org/post/luajit/0LL-nil
Updated LuaJIT to latest v2.1 branch.
Merge pull request #166 from lukego/luajit_update

Updated LuaJIT to latest v2.1 branch.
Merge pull request #164 from javierguerragiraldez/master

Fix vlan filters
Merge pull request #162 from logiceditor-com/aa/4147/test_tunnel_setup

L2TPv3/keyed_ipv6_tunnel: Test tunnel setup
packet_filter: Fixed minor typo bug introduced in last commit.
Merge pull request #167 from lukego/packet_filter_fix

packet_filter: Fixed minor typo bug introduced in last commit.
Merge pull request #165 from lukego/packet_filter_nojit

packet_filter bug workaround: Disable JIT on generated code.
intel10g: Fix to avoid multicast traffic looping back to sender.

If multicast traffic is returned to sender it triggers IPv6 Duplicate
Address Detection (in Linux) and prevents traffic from being sent.

Fixed by clearing the LLE (Local Loopback Enable) bit of register
PFVMTXSW (PF VM Tx Switch Loopback Enable).

Relevant note in the 82599 datasheet on page 161:

    A VM might be set to receive it’s own traffic in case the source and
    the destination are in the same pool via the PFVMTXSW.LLE.
Merge pull request #168 from lukego/intel_no_loopback

intel10g: Fix to avoid multicast traffic looping back to sender.