reactive: add loadbalancer controller

This controller takes a NetKAT policy as an input the describes the
loadbalancing options as a parallel composition of switch/dlSrc/dlDst
filters sequenced with a choice of ports. In addition the edge can be
described using switch/dlDst filter with a single port. For example:

  filter switch=1 and ethDst=1; port := 1 |
  filter switch=1 and ethDst=2; port := 2 |
  filter switch=2 and ethDst=3; port := 1 |
  filter switch=2 and ethDst=4; port := 2 |
  filter switch=1 and ethSrc=1 and ethDst=3; (port := 3 + port := 4) |
  filter switch=1 and ethSrc=1 and ethDst=4; (port := 4 + port := 3) |
  filter switch=1 and ethSrc=2 and ethDst=3; (port := 4 + port := 3) |
  filter switch=1 and ethSrc=2 and ethDst=4; (port := 3 + port := 4) |

Usage:

  ./reactive lb FILE

To use the fast-failover reactive controller, you must now call reactive
like this:

  ./reactive ff FILE