Add support for IP masks

This pull request adds support for IP prefix masking.

It also refactors LocalCompiler to use PrefixTable instead of PosNeg -- a more flexible representation that will enable us to use more kinds of patterns in the future.
Sorry, I meant join of course (and edited above). 

Basically if we have two IP masks that can be merged into a single IP mask that represents their union, this code finds it. It's used for the analogue of shadow removal and fall-throughs.

-N