Reserve `do` as a keyword

Resolves issue #12157. `do` is hereby reinstated as a keyword; no syntax is
associated with it though. Along the way, a unit test had to be adapted, since
it was using `do` as a method identifier.

Breaking changes:

- Any code using `do` as an identifier will no longer work.
Revised Crate section of tutorial for clarity.
Ignore #[phase] on use view items

Closes #11806
Output the correct library filename with --dep-info

Fixes #12174.
Don't use -Z prefer-dynamic at stage0

This is blocking a snapshot because the stage0 target compiler comes from a
stage1 host compiler. This means that the stage0 compiler doesn't actually
understand the -Z prefer-dynamic flag and is dying as a result.

This will get added back to stage0 after a snapshot.
auto merge of #12170 : aepsil0n/rust/feature/reserve_do_keyword, r=brson

This resolves issue #12157. Does that do it already or is there something else that needs taking care of?  

As a side note, there seems to be some documentation, in which the old existence of the do keyword is explained. The list of keywords is not up-to-date either. But these are certainly separate issues.
Factoring bigint, rational, and complex out of libextra into libnum.

Removed use of globs present in earlier versions of modules.

Fix tutorial.md to reflect `extra::rational` ==> `num::rational`.
auto merge of #12175 : sfackler/rust/phase-use-ignored, r=alexcrichton

It could throw an error but I think it's best to not since `#[phase(..)]` syntax in other places would be silently ignored.

Closes #11806
auto merge of #12154 : pnkfelix/rust/fsk-factor-bigint-and-rat-out-of-libextra, r=alexcrichton

Removed use of globs present in earlier versions of modules.

Fix tutorial.md to reflect `extra::rational` ==> `num::rational`.
auto merge of #12176 : kballard/rust/dep-info-lib-filename, r=alexcrichton

Fixes #12174.
Correct span for self and ExprStruct
auto merge of #12177 : alexcrichton/rust/fix-snapshot, r=kballard

This is blocking a snapshot because the stage0 target compiler comes from a
stage1 host compiler. This means that the stage0 compiler doesn't actually
understand the -Z prefer-dynamic flag and is dying as a result.

This will get added back to stage0 after a snapshot.
Fix broken link to the container guide
remove dead link to rustpkg documentation
auto merge of #12181 : sanxiyn/rust/accurate-span-4, r=alexcrichton
Tweak test name and make it more specific
Change `xfail` directives in compiletests to `ignore`, closes #11363
auto merge of #12110 : fhahn/rust/issue-11363-change-xfail, r=alexcrichton

Patch for #11363
Add ignore-cross-compile directive for compiletest

Loadable syntax extensions don't work when cross compiling (see #12102), so the
fourcc tests all need to be ignored. They're valuable tests, so they shouldn't
be outright ignored, so they're now flagged with ignore-cross-compile
auto merge of #12171 : chromatic/rust/fix_crate_tutorial_typos, r=brson

This commit attempts to clarify a section of the tutorial. It also fixes some typos.