lib.lua: Added csum() to compute the IP checksum.

The code includes this important comment:

    NOTE: Checksums should seldom be computed in software. Packets
    carried over hardware ethernet (e.g. 82599) should be checksummed
    in hardware, and packets carried over software ethernet (e.g.
    virtio) should be flagged as not requiring checksum verification.
    So consider it a "code smell" to call this function.
packet.lua: Fixed nasty bug. free() did not zero packet.length.
apps.ipv6.SimpleIPv6: New app for proof-of-concept IPv6 packet forwarding.

Just minimal proof-of-concept code:

1. Respond to Neighbor Solicitation with Neighbor Advertisment.
2. Route IPv6 packets back to their sender (simple demo).
3. Check hop_limit and send ICMPv6 Time Exceeded (for traceroute).
4. Respond to ICMPv6 ECHO (for ping).

Includes a simple regression selftest: process input packets from a
pcap file and compare the packets sent with a "known good" trace.

Test like this:

    # cd snabbswitch/src
    # ./snabbswitch -t apps.ipv6.ipv6
designs/terastream: Initial work to support ISP networking for OpenStack.
pcap.lua: Removed debug printout.