Add support for BinaryIntegerLiteral and OctalIntegerLiteral.

This fixes #1531.
It shares HexIntegerLiteral code for lexing BinaryIntegerLiteral and OctalIntegerLiteral.
Also, adds "isLegacy" property to ES5 OctalIntegerLiteral, to avoid triggering W115 warning for ES6 OctalIntegerLiteral.

Thank you again!
Added one more case, as @caitp wrote.

(C) remove outer ```if (char === "x" ...``` and share lexing code with DecimalDigits (integer part) and legacy OctalIntegerLiteral.
https://github.com/arai-a/jshint/commit/50e2c2cd8cc2a0f65f3f4eaf2b7404171beda9c5