Add support for hexadecimal integer literals

Fixes #728.
Yeah, I think so; otherwise `0xe` will match the case below it and get turned into a float.