"Fixed" the computation of the derivative class intersections, but some investigation needs to be done because now we're outputting wildly incorrect lexer tables.
Merge branch 'master' into fixed-deriv-classes
Correctly handle the universe (or Sigma, representing the alphabet of the regular language) in derivative classes.
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.
Minor cleanup (no functionality changes).