Support hex character literals (eg. #\x41 => #\A)

According to R6RS section 4.2.6 characters literals can be entered
as #\x<hex scalar value>. This patch implements parsing of such
literals. Surrogate code points (0xB800 through oxBFFF) are rejected
in accordance with the standard.

Unfortunately, since JS strings are sequences of 16-bit unsigned ints,
the full Unicode range cannot be represented. Therefore, an error is
generated when a character literal is requested whose value exceeds
0xFFFF. This is a violation of R6RS, which requires that the full
Unicode range be represented.
Merge pull request #17 from mtornwall/hex-char-literals

Support hex character literals (eg. #\x41 => #\A)