Fix bugs with numeric literals.

babff06: Require identifier used in `var` or `def` declarations to actually be an identifier token. Previously number tokens were accepted.

f670099: Fix numbers such as `0xabc.32xhello` to generate invalid C and Javascript code. Now it generates valid code, even though this syntax is bizzare.

1d03477: Restrict valid bases to 2 through 36. Base 1 doesn't make any sense, and bases above 37 aren't really defined that well (that I know of).