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.
Includes new add method that uses .clone() for support.

Added new tests for bsearch methods and changed "add" to "insert"

Fixed failure on div_floor.
auto merge of #12183 : SimonSapin/rust/patch-4, r=alexcrichton
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
vec -- introduce local var to make clear what subportion is being borrowed
back/link -- introduce block to clarify scope of closure
ppaux -- add Repr implementations
io -- introduce local to avoid conflicting borrow