Fix binary and hexadecimal uppercase literals

Brad pointed out that binary and hexadecimal literals which used the uppercase
form (i.e. 0X instead of 0x) were probably not being handled correctly.  I
verified that this was happening and fixed it.  Additionally, added two tests
which lock in this behavior.