Fixed bugs in epsilon elimination

* Rewrote to cleanly separate pick-state / non-pick-state cases.

* Handle case where transition from q - ns -> q' and the epsilon closure
  of q' includes a pick state q''. Then we need to add r - ns -> r' and also
  r - ns -> r'', where r, r', and r'' are the new automaton states for q, q',
  and q'' respectively.

This seems to work on the simple unit test involving choice!

Left lots of debugging code in, in the event that Spiros finds it useful.