Fix merge fallout of privacy changes
auto merge of #9735 : alexcrichton/rust/privacy, r=cmr

This is the culmination and attempted resolution of #8215. The commits have many more details about implementation details and the consequences of this refinement.

I'll point out specific locations which may be possible causes for alarm. In general, I have been very happy with how things have turned out. I'm a little sad that I couldn't remove privacy from resolve as much as I did, but I blame glob imports (although in theory even some of this can be mitigated as well).
auto merge of #9674 : ben0x539/rust/raw-str, r=alexcrichton

This branch parses raw string literals as in #9411.
debuginfo: Unified namespace generation approach for crate-local and external items. Fixed bug related to LLVM metadata uniquing.
auto merge of #9658 : michaelwoerister/rust/namespace_fixes, r=jdm

This should fix some outstanding namespace issues. It also fixes an issue with LLVM metadata uniquing that caused an LLVM assertion when compiling libstd.

One thing to keep in mind is that the `-O` flag and the debug info flags are essentially incompatible. It may work but I would not consider this in any way supported at the moment. On the other hand, there is also good news: With the changes in this PR I am able to compile all of rust with extra-debug-info:
```
make RUSTFLAGS_STAGE2='-Zextra-debug-info' check
```
compiles the whole thing without warning and passes the whole test suite (given that `configure` is run with `--disable-optimize`). That's kind of nice `:)` Still, I'm reluctant to automatically close the related issues (#9167, #9190, #9268) without confirmation from the openers. I'll post to the individual threads once this gets merged.
make small ty_struct immediate

Closes #9651
auto merge of #9759 : thestinger/rust/immediate, r=alexcrichton

Closes #9651
Add bindings for start and ends of keyword ranges; use bindings in match arms.
rm useless fast_ffi attributes

this is no longer used by the compiler
auto merge of #9766 : thestinger/rust/fast_ffi, r=huonw

this is no longer used by the compiler
auto merge of #9768 : pnkfelix/rust/fsk-fix-issue-9762, r=bstrie

r? anyone

Add bindings for start and ends of keyword ranges; use bindings in match arms.

Also, fixed latent bug that inspired this change: the pattern in `is_any_keyword` had not been updated to match the new range of reserved keyword identifiers.

(I briefly tried to expose the latent bug, but `is_any_keyword` is currently only called in contexts where a failure of this kind merely causes a bit more fruitless compilation before `check_reserved_keywords` is called by the parser, which correctly tags `sizeof` as reserved.)
auto merge of #9756 : catamorphism/rust/issue-2354, r=alexcrichton

r? anybody It's more helpful to list the span of each open delimiter seen so far
than to print out an error with the span of the last position in the file.

Closes #2354
Register new snapshots
auto merge of #9757 : erickt/rust/master, r=alexcrichton

I accidentally left an infinite loop in a default method in `num::ToPrimitive::to_u64()`. This fixes it.
Fix float to float ToPrimitive implementation.

The mimimum (negative) value of a float is -Bounded::max_value(), not Bounded::min_value().
auto merge of #9771 : alexcrichton/rust/snapshots, r=thestinger

Still building locally, we'll see if anything dies...
Build libuv/jemalloc only once (not per stage)

Reorganize the makefiles to stop building these once per stage because there's
no need to do this at all.

Closes #7002
auto merge of #9772 : alexcrichton/rust/buildsystem, r=thestinger

Reorganize the makefiles to stop building these once per stage because there's
no need to do this at all.

Closes #7002
Allow attributes on macros

It's unclear to me why these currently aren't allowed, and my best guess is that
a long time ago we didn't strip the ast of cfg nodes before syntax expansion.
Now that this is done, I'm not certain that we should continue to prohibit this
functionality.

This is a step in the right direction towards #5605, because now we can add an
empty `std::macros` module to the documentation with a bunch of empty macros
explaining how they're supposed to be used.
auto merge of #9753 : alexcrichton/rust/macro-attrs, r=brson

It's unclear to me why these currently aren't allowed, and my best guess is that
a long time ago we didn't strip the ast of cfg nodes before syntax expansion.
Now that this is done, I'm not certain that we should continue to prohibit this
functionality.

This is a step in the right direction towards #5605, because now we can add an
empty `std::macros` module to the documentation with a bunch of empty macros
explaining how they're supposed to be used.