deal with regex sets as combinable sets of numeric ranges

so this one is a bit experimental... it's much faster than my other pull request and the tests mostly pass

**new class**: I made a class that's a set of ranges that allows for easy addition and subtraction of ranges.  there's no tests for it and if I wanted to publish it I'd add a few more features to it.  but the new class makes inverted sets pretty simple.

**test**: there was a test to make sure the output of anyRandCharacter is returned by `/./`, but the new code doesn't use anyRandCharacter for that anymore ***so it failed***.  I couldn't find any other reference to anyRandCharacter so I removed it