Added Choice policy constructor
merge
Added Choice to dehopification
Added dataflowesque optimizations, much more scalable. Also reduced number of tags generated
merge
No longer build frenetic and maclearning executables.

Reviewed by Spiros.
snapshot commit
Clean up/refactor optimizations to use lattice of values
merge from reitblatt fork
debugging snapshot to switch to Spiros'
dehop: fix bug in dataflow lattice merge function

If one of the tables is empty, merge default across values of the other
table before returning.
Added safe version of global optimzations to be called during distribution. Can now compile policies w/ 4 seqs and 4 topo terms
Added comments to optimization in dehop, specifically use/don't use instructions
apparently the 'safe' optimizations aren't so safe to call in arbitrary contexts. Commenting off to debug later
fix really stupid typo which broke 'safe' optimizations.
merge
Remove Links from NetKAT quick check.

For now we only generate local policies
updated Dehop to work with new NetKAT_Types policies, use new i;(p;t)*;e normal form, and fix remove_dead_matches to compute full fixpoint for star analysis
Addressed inefficiencies in LocalCompiler

* Don't add redundant negated clauses
* Don't represent drops

Also added some extra printing and fixed unit tests.:
De-functorize, refactor NetKAT

* Defunctorize the compiler and such. We were only half functorized
  (e.g., we did not functorize SDN_Types.flowTable ) and this was only
  being used for unit tests, where defining some helper functions will
  work just as well. I'm happy to re-functorize later, but for now it
  just adds clutter.

* Eliminate NetKAT_ prefix for many files:
  - Types
  - Lexer
  - Parser
  - etc.

* Split Types into three modules:
  - Types (ASTs and auxiliary types)
  - Semantics (eval function)
  - Pretty (pretty printing)