flowterp: initial implementation of flowtable interpreter
flowterp: fix bug/typo in flowtable generation

Copy/paste bug introduced in 9f61484d.
flowterp: add test comparing semantics and flowterp

This test establishes that the semantics and the flowtables generated by
the LocalCompiler agree.
Merge remote-tracking branch 'origin/dep_sort' into flowterp

Conflicts:
	_oasis
	lib/netkat.mllib
	setup.ml
flowterp: have check_compiler_output use flowterp

The tests involving check_compiler_output now check policy equivalence
in terms of their flowtables. This is exposing a bug in our obscures
code.
Fix LocalCompiler bug with ill-formed Local.ts.

In the implementation of sequential composition (seq p q) we iterate
over all each element of (x,s) in p, iterate over each action a in p
and then actually do the sequential composition of that x and a with
q. When we got the result, we were Pattern.Map.merge'ing this into an
accumulated Pattern.Map.t, which sometimes resulted in an ill-formed
value.

The fix is to replace the Pattern.Map.merge with `par`, which actually
does a semantic union and preserves well-formedness.

Also added a helper function `check` to test for well-formedness.

-N
flowterp: Update to new ocaml-openflow API, fix tests

The failing tests were being caused by star test cases. There was no way
to represent in a flowtable the possibility of not going through the
star once, since ocaml-openflow did not expose the InPort pseudoport.
The new API does expose this, so a flowtable can be properly constructed
for star expressions.
Merge pull request #293 from frenetic-lang/flowterp

Conflicts:
	async/discovery.ml