more helpful error message for ident comparison failure
fix for bug #9110
ident->name cleanup
added run-pass test from issue #9110
implement raw pointer comparisons in librustc

This is mostly for consistency, as you can now compare raw pointers in
constant expressions or without the standard library.

It also reduces the number of `ptrtoint` instructions in the IR, making
tracking down culprits of what's usually an anti-pattern easier.
Parse underscores in identifiers for format!

Closes #9119
auto merge of #9135 : jbclements/rust/let-var-hygiene, r=erickt

Fixes issue #9110, changes field_ty element to Name, adds test case, improves fail error message
auto merge of #9140 : alexcrichton/rust/issue-9119, r=huonw

Closes #9119
auto merge of #9136 : thestinger/rust/ptr, r=alexcrichton

This is mostly for consistency, as you can now compare raw pointers in
constant expressions or without the standard library.

It also reduces the number of `ptrtoint` instructions in the IR, making
tracking down culprits of what's usually an anti-pattern easier.