Nixed SyntaxTable, added Chars.

We weren't really using the syntax table as Emacs did, and it's simpler to just
have some useful character functions and deal with syntax separately.

This also changes Buffer.findForward/Backward to take a three arg predicate
which is passed the row and column as well as the character, so that a
predicate can check other information about a character during matching.
Restrict block-matching to same syntax class.

This means brackets in code only match other brackets in code, which is good,
but also that brackets in comments only match other brackets in comments, and
same for strings.

I'm not 100% sure I like the syntax class approach versus just code/not-code,
but I'm going to roll with this for a while and see how I feel. It's a little
weird when working on code that "talks" about brackets a lot (like IDE code),
since that tends to have dangling brackets in code which look weird.
Use LCD font smoothing.

This fixes the annoying jittering as we apply and remove styles, splitting
lines in different places. Yay!
Hackery to change Quit to M-S-q on Mac.

This avoids conflict with M-q which is a common Emacs command (fill-paragraph).