enforce invariant of correct # of NFA fates

The mergesubstates method now always guarantees that states[0] has a
size reflecting the number of fates used by this NFA.  Previously it
relied on its caller to set the fates list, and since /@array/ didn't
do that (oops), the fate count was off, resulting in reallocations
in the NFA engine.  Since alternatives just use the fate numbers
directly, they no longer have to set the fates.  Protoregexes, on
the other hand, still override the fate number with rxname, but now
do so by setting it after mergesubstates sets it to the number.