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.

Okay, I prepared patches for that case.

(A) do not share esnext checking code with BinaryIntegerLiteral and OctalIntegerLiteral
https://github.com/arai-a/jshint/commit/617c6239a199601caebe201bcefcbc475eda4808

(B) do not share entire lexing code with HexIntegerLiteral and others
https://github.com/arai-a/jshint/commit/1bf0cc503630f1c206406114cc3276c8664d19a5

I think these 3 patches (this patch and above 2) are essentially same, just different in how much code is shared.
Which style do you prefer?