Add filter, sorted builtins
Add set equality
Use Thompson-style NFA for regexes, so the regex implementation is actually correct (probably).

Seems like it makes the lexer test ungodly slow. Oh joy.
Forgot to add the @ token to lexer.mg...
Ah, sets can't work with unorderable types (like dicts... for now) if we use sorted
Tiny syntax.py cleanup
Support capturing groups and named groups, and use them in the tokenizer. Even slower...
Enable return type test that used to be broken but works with recent scoping changes
Minor test cleanups
Remove unused function
Rename syntax.py -> core.py
Add slicing syntax support
Use slice syntax rather than slice()