vint: port to vint branch of ocaml-openflow

User-facing changes:

  * parse specific bit-widths for specific fields

Incidental bugfixes:

  * fix issue where vlan was being parsed as ethTyp
Merge pull request #289 from frenetic-lang/vint

port to vint branch of ocaml-openflow
pktout: Use SDN_Types.pktOut type for packet outs

Additionaly, the controller must keep track of the switch that the
packet_out is intended for.
pktout: use payload in PacketIn

Reuse types as much as possible rather than redefining them in different
ways across libraries.
dep_sort: disable fall through optimization

This seems to be producing bad results. One of the tests results was
checking for the wrong flowtable result. Once that was fixed, the test
started failing, but they pass when the fall through optimization is
disabled.
dep_sort: Add topological sort module
dep_sort: properly sort flows according to dependencies

The dependency relation among flows is a partial ordering. The code was
previously treating it as a total ordering, and was therefore producing
bogus results.
dep_sort: add all vertices to the topo graph
dep_sort: flip sign of compare
dep_sort: delay obscures calls
dep_sort: separate compare and dep_compare in functor

One is used for lookup tables, the other is used to determine the
partial order. dep_compare uses -1 for less than, 1 for greater than,
and 0 for incomparable.
Merge pull request #290 from frenetic-lang/pktout

Reuse types from ocaml-openflow in app API
Merge pull request #291 from frenetic-lang/dep_sort

Properly sort pattern/action before generating flowtables
Merge branch 'master' of github.com:frenetic-lang/frenetic into network_updates

Conflicts:
	_tags
	setup.ml
Updates working modulo topo discovery

Current topology discovery is super slow so we think every is an external port
snapshot for debug