Interim commit for adding choice into policy evaluation.
Not quite what is needed.
fixed build errors

the signature S had to be updated in the .ml file too.
Merge branch 'semantics' of https://github.com/frenetic-lang/frenetic into semantics
Choice for NetKAT (certainly still need debugging)
Merge remote-tracking branch 'frenetic-lang/master' into semantics
Merge branch 'master' into semantics
Fix order of NetKAT choice compilation, and add a few unit tests
coded up earlier example that used abstraction layer directly
Merge remote-tracking branch 'frenetic-lang/semantics' into semantics

Conflicts:
	setup.ml
Choice bug fixes
semantics: added pushvlan, popvlan and link policies

Kludg'd up Arjun's functor with switch, port, vlan, and zero in order to get
this working. Reconsider functors.
Refactor NetKAT parser and pretty printer

(a) standardize names of fields; and
(b) not use precedences.
merge semantics branch
merged in semantics new push/pop types