guard special cases with a single test
calculate longlit offset at last litchar
guard special cases with a single test
longlits done right, 5th try

The edges that terminate each literal must know which fate they
influence the longest literal of.  And the edge must not do so
unless the edge actually matches, which cannot be decided during
the compilation of NFAs.  And we can't just throw the longlit up in
the air for the fates to catch because the NFA is being evaluated in
parallel, so the wrong fate gets the wrong longlit.

Hence we need an array of longlits, one per possible fate, for the
literal edges to update with the actual longest literal that matched.
As with other NFA arrays, this one is also cached in the thread
context.  (Unlike the others, this array never grows larger than the
number of alternatives.)

The other weirdness is that since our edges are limited to 3 words,
the information on which fate the longlit was for had to be stuffed
into the action word rather than the arg.  Then the fate nubmer had
to be masked out to retrieve the actual action. Probably there's a
better way to do this with a struct or union, modulo endian issues.
Merge branch 'master' of https://github.com/MoarVM/MoarVM into HEAD
Merge branch 'master' of https://github.com/MoarVM/MoarVM

Conflicts:
	src/6model/reprs/NFA.c
Merge branch 'longlit5'

Conflicts:
	src/6model/reprs/NFA.c
clean up botched merge damage