Lexer character/string literal numeric character escape fixes

Octal character escapes starting with \1, \2 and \3 now actually
work!

Decimal character escapes no longer limited to \d99.

Support for short (one or two digit) numeric character escapes.
Number parsing stops at the first character that's not in range
for the current numeric base, and fails only if there are no
digits at all.