quickcheck: test framework setup and initial implementation

This commit sets up the initial testing framework for ocaml-packet, and
also includes round-trip testing for uninterpreted ethernet packets.
quickcheck: roundtrip property for ARP packets

Note that the packets aren't exactly well-formed ARP packets. For
example, the destination MAC address is not the broadcast address.
However, this still properly tests serialization/deserialization.
quickcheck: roundtrip property for IP packets

This testing revealed two bugs:

  * The ident field was not being properly marshalled, and in fact were
    never used. In its place, the code wrote the tos byte
  * The code flipped the order of the flags and fragment offset bits
    marshalling
quickcheck: do not error when IPv4 options present

This, I have been informed, will break "real-world applications." These
words are unfamiliar to me, but I trust the source. And now the source
trusts the source.
quickcheck: refactor arbitrary payload generation
quickcheck: roundtrip property for UDP packets
quickcheck: fix UDP test name, rm debug printf
quickcheck: roundtrip testing for TCP packets

This testing revealed one bug:

  * The NS flag is in a different byte than the rest of the flags. In
    particular it's in the same byte as the data offset. If it was ever
    set in an incoming packet, that flag would be dropped by the shift
    of the offset byte.
travis: enable travis-ci integration