Increment version; switch to semver
Add decapsulate/2

Wrapper around decapsulate/1.
pkt: separate protocols into modules

As suggested by @ates, begin the work of moving protocols in their own
modules.
Create headers per protocol

Break up the header files into their protocol types. pkt.hrl now just
does an include of the different protocol types.

This may introduce problems:
* a dependency on include order
* problems doing

        -include_lib("pkt/include/pkt.hrl").
Move SCTP test to the separate file
Add some specs for #sctp{} record fields
tests: match tests with modules

Add a basic test for decapsulation.
Rename pkt_tcp:tcp_options/1 to options/1

Also remove pkt:tcp_options/1 for now. Modify the test to call
pkt_tcp:options/1 directly.
test: add test for arp
test: add test for ethernet frames
tests: normalize the naming
tests: add more protocol tests
decapsulate/decode: re-work packet decapsulation

Add decapsulate/2 and decode/1,2.

The arity-2 functions allow the caller to specify the protocol type. For
example:

    pkt:decode(icmp6, Bin)

Will decode the data as an ICMP6 packet (the default is ethernet).

decapsulate/1,2 is used when the caller is only concerned with the
"happy" case. It will crash if the packet is invalid. The caller can
catch the crash.

If the caller does not want to crash and wants the contents of what has
been so far decoded, they can use decode/1,2:

    case pkt:decode(en10mb, Bin) of
        {ok, [#ether{}, #ipv4{saddr = Saddr}, #tcp{sport = Sport}, Payload]} ->
            {{Saddr, Sport}, Payload};
        {error, [#ether{}, #ipv4{saddr = Saddr}], {tcp, Payload}} ->
            % if the TCP header was invalid
            {error, {Saddr, Payload}}
    end.

decode/1,2 is likely slower than decapsulate/1,2.
decode: cleanup
decapsulate: remove header length guards

Remove the checks for the length of the header. For some of the protocols,
the chosen value was arbitrary. The guard checks also duplicate code:
the length is checked by the appropriate codec for the protocol.

Consequently, remove the final function clause to catch truncated
headers. decapsulate/1,2 should crash instead since the packet is
invalid.
decapsulate: add aliases for ether/linux_cooked
decapsulate: ensure crash on invalid packets
decapsulate/decode: update README
pkt: cleanup
Add IPv6 extension headers