Add IP mask support to patterns.
Implement intersection for masked header fields.
Begin refactoring from PosNeg to PrefixTable.
Implement TODOs from refactoring.

Also, functorize PrefixTable and begin refactoring
optimizations into PrefixTable.
Make fields compatible with functor.
Do not convert any-masks to predicates.
Fix interfacing between PrefixTable and Option functor.
Proper shadow detection
Less debugging
Don't throw exceptions in pretty printing test
Fix bug with subseteq
Debug obscures issue
Generalize S module to pos and neg; fix obscures
Remove debugging
Semantic equal
Checkpoint
ip-mask passes all unit tests
Can't shift 32
* Fix error in IP shifting (logical_shift_right by 32 is undefined)

* Rationalize matching of IP masks to always call Int32TupleHeader.subseteq.

* Disable fall-through optimization by default, due to poor performance.
Changes from ocaml-openflow merge