autoc: inline add in add_all
autoc: fix ingress policy bug for top-level choice

The ingress policy for top-level choice should check that the automaton
is in the initial state, and then set the state among the choices.
autoc: refactor creating choice policies

Define the foldl1_map policy, which is a combination of a left fold over
a non-empty list (i.e., it uses the first element as the accumulator)
and a map.

To create a choice policy, you map over the states creating modification
policies for each, and then combining them all with a Choice constructor
`foldl1_map pick mk_mod` does exactly that.
autoc: use sequential ints for states
autoc: properly inject/eject packets from network

Provide some comments to clarify what's going. Briefly, this code
assumes all packets outside of the network are on vlan 0. The ingress
policy checks for this and then sets up the initial state of the
automaton. The egress policy checks for the final state (actually states
backwards reachable from the final state via epsilon transitions) and
ejects the packet from the network by setting the vlan back to 0.
autoc: Make the automaton code eaiser to debug

If stuff starts to go wrong, stop renumbering states and look at the dot
output of the nfa.
autoc: introduce dehopified type

A type parameterized by the policy type, that contains all the
information that dehopification produces.
autoc: rename SwitchMap to SwitchPortMap

Much more descriptive.
autoc: convert from SwitchPortMap.t to SwitchMap.t

switch_port_policies_to_switch_policies turns the map from switch, port
pairs into a map from switches to policies. This is a better
representation for actually getting stuff running on switches, in that
it saves client code from doing a loop.
autoc: katnetic dump now dumps all switch tables
typos
Merge branch 'auto_complete'