Mostly fixed the derivative class issues -- we were returning the wrong values for Any and for specific character sets. The resulting lexer is now *almost* back to normal, though it outputs a massive transition vector for some states (which also contains some invalid entries).
Instead of requiring *every* character in a Unicode category to transition to the same target state, we now perform the compression "intelligently"; this fixes the problem where some of the transition vectors in the emitted lexer tables were enormous because of the recent changes to how we compute derivative classes.