reduce NFAs 40% by removing 2/3 of epsilons

Edges that point to simple epsilon states can instead point to whatever
the epsilon points to (transitively).  Identical fates can be similarly
merged.  Once the useless states are delinked, we resequence the states
and associated edges, removing any states that no longer have any
reference, and remapping the state pointers.

Also fixed a bug in quant that can produce states with no edges when quant
is called with a 'to' of -1.

Also installed a whole lot of debugging code to figure all this out.

Also added tests for epsilons pointing to 0 on parrot and jvm (moar already
has this check).  Should become unnecessary once nqp is rebootstrapped, but
the stage 0 NFAs have the edgeless state bug that triggers this.
bump moar