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.

I was thinking...

```js
if (char === "x" || char === "X") {
   ...
}

if (char === "o" || char === "O") {
   ...
}

if (char === "b" || char === "B") {
   ...
}
```

That's not tested and might not be right, I'm really just thinking out loud.