libcore: from_str_common: correctly signal failure on repeating base 2^n numbers.

A number like 0b1_1111_1111 == 511 would be parsed to Some(255u8) rather than None
by from_str_common, since 255 * 2 + 1 == 255 (mod 256) so the overflow wasn't detected.

Only applied to conversions where the radix was a power of 2, and where all digits
repeated.

Closes #5770.
libcore: from_str_common: provide option to ignore underscores.

Implement the possible improvement listed in the comment on
from_str_bytes_common.
libsyntax: fail lexing with an error message on an int literal larger than 2^64.

Stops an ICE.

Closes #5544.
auto merge of #5776 : dbaupp/rust/syntax-parse-large-number, r=thestinger

Addresses #5544 and #5770, as well as a comment left in the documentation of `from_str_bytes_common`, so that there is now an option to ignore underscores.