Update the RegExp for constant.numeric.java.

The existing RegExp recognizes invalid hexadecimals like `int x = 0x;`.

However, the [specification](http://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-HexNumeral) says that "A hexadecimal numeral consists of the leading ASCII characters 0x or 0X followed by one or more ASCII hexadecimal digits [...]".

This change essentially makes the `[0-9a-fA-F]` group set non-optional.