lattice: move pattern to submodule, define lattice ops
lattice: use new ocaml-packet.quickcheck API
lattice: add arbitrary instance for Pattern.t
lattice: quickcheck tests for Pattern.t lattice operations
lattice: add Pattern.disjoint
lattice: add Pattern.eq for semantic equality

Currently it's the same as structural equality. Hopefully this will be
preserved.
Merge pull request #126 from frenetic-lang/lattice

Implement lattice operations for patterns