Revised Crate section of tutorial for clarity.
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.
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.
auto merge of #12181 : sanxiyn/rust/accurate-span-4, r=alexcrichton
Change `xfail` directives in compiletests to `ignore`, closes #11363
auto merge of #12110 : fhahn/rust/issue-11363-change-xfail, r=alexcrichton

Patch for #11363
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.
std -- replaces uses where const borrows would be required
remove antiquated reflect test rather than bring it up to date
libglob -- patch closure where const borrow would have helped
container -- update example to contain scope of closure borrow
to_str -- update to contain scope of closure
ty -- minor refactorings, helper methods
trans/datum -- move mutable variable into closure
error_reporting -- explain reborrowed upvar constraints in a hopefully useful way
metadata -- remove tiny convenience closure that was causing conflicting mutable borrows
resolve -- rewrite conflict closure into method
syntax/ext/format -- rewrite conflicting closures into methods
syntax/fold -- remove conflicting (and rather pointless) closures