autofix: eliminate Choice from lf_policy

Choices cannot appear in link-free policies, because the automaton
states have to represent those choices. By removing Choice from
lf_policy, that forces dehopification to return a policy instead of an
lf_policy, since choices may appear when setting the vlan tag in the
local policy.
autofix: off-by-one error accounting for pick states

The epsilon elimination code was assuming that an automaton would alway
transition to a choice node via a character. This is not always the
case. In fact, if a choice node is never preceded by a sequental
composition, it will always be the case. Examples:

  p + q
  (p + q) | r
autofix: correctly handle initial choice

A choice node may be an initial state. In this case, all states that are
reachable by epsilon transitions from that initial states are potential
start states and the ingress policy must choose between them.

The initial state may not be a choice node, but a choice node may be
reachable from the initial state by epsilon transitions. In that case,
find all the states that are reachable from those choice nodes via
epsilon transition. The ingress policy must choose between these, but
may also in parallel perform other character transitions from the
initial state.