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.
Initial Consistent Updates commit

Basic 2-Phase Commit algorithm, disabled

Basic consistent updates test app. Currently breaks when Controller actions get spliced in, which causes unrealizable mods. Easy fix is to stamp VLAN
Added barriers/ivars protocol

Updates working modulo topo discovery

Current topology discovery is super slow so we think every port is an external port
Added single-switch consistent update

More efficient per-switch consistent update
Block on barrier send before reading Ivar

Updates are working for tree,2,2!
Added consistent update flag. Reformatted.
Do not convert any-masks to predicates.
Fix interfacing between PrefixTable and Option functor.
net_updates: combine handlers, parametrized by update approach
net_updates: Txn module to handle RPC-like switch communication

This module exposes a send function that will return an Ivar.t that
will be filled with the response from the switch whe the controller
receives the response. The management of xids is hidden from the user.

Be sure to only use Txn.send with messages that will provoke the switch
to send a response. If you don't and you block on reading the returned
Ivar.t, then you'll be waiting until the switch disconnects.
net_updates: Use Txn for barriers, treat error and disconnect differently

Replace code for barrier requests with the Txn module. Txn will detect
switch disconnects, so it's no longer necessary to try and guess when
that happens using a timeout. Doing this also enables the code to
distinguish disconnect and error scenarios.
net_update: make update strategy a command-line argument

Use the --update=STRATEGY flag of katnetic to specify the update
strategy. The default is best-effort.
net_update: change `Result () to `Complete

This is related to the return type of sending a barrier request.
Proper shadow detection
Less debugging
Don't throw exceptions in pretty printing test