[std::ascii] Add .to_ascii_opt() and .into_ascii_opt() returning Option

… instead of failing.

Make them default methods on the trait, and also make .to_ascii()
a default method while we’re at it.

Conflicts:
	src/libstd/ascii.rs
rustc: Strip struct fields and enum variants

Closes #11085
std::rand: remove the `fn main()` from the examples.
std::hashmap: add an example to mangle.
std: remove some test warnings
std: result::collect to take an iterator, add option::collect
librustc: Implement coercion for traits.
Add tests for trait object coercion.
std: uniform modules titles for doc

This commit uniforms the short title of modules provided by libstd,
in order to make their roles more explicit when glancing at the index.

Signed-off-by: Luca Bruno <lucab@debian.org>
Renamed ClonableIterator to CloneableIterator
auto merge of #11156 : luqmana/rust/trait-object-coercion, r=pcwalton

This ports over @pcwalton's old pull that bitrotted (#5597). Fixes #10039.

r? @pcwalton / @nikomatsakis
auto merge of #11098 : erickt/rust/collect, r=alexcrichton

This patch changes `result::collect` (and adds a new `option::collect`) from creating a `~[T]` to take an `Iterator`. This makes the function much more flexible, and may replace the need for #10989.

This patch is a little more complicated than it needs to be because of #11084. Once that is fixed we can replace the `CollectIterator` with a `Scan` iterator.

It also fixes a test warning.
Bring native process bindings up to date

Move the tests into libstd, use the `iotest!` macro to test both native and uv
bindings, and use the cloexec trick to figure out when the child process fails
in exec.
auto merge of #11160 : octurion/rust/cloneable, r=alexcrichton

Rename all instances of ClonableIterator to CloneableIterator. This fixes bug https://github.com/mozilla/rust/issues/11132.
Implement native TCP I/O
Initialize LLVM only once

This also appears to fix a race in LLVM that was causing a deadlock on the bots
during the doc-test tests (where we use rustc in parallel).
Update tutorial.md : rename pkgid to crate_id
auto merge of #11170 : alexcrichton/rust/fix-llvm-race, r=pcwalton

This also appears to fix a race in LLVM that was causing a deadlock on the bots
during the doc-test tests (where we use rustc in parallel).
rustc: Fix a borrow failure in `.ln_str()`

`ln_str` caused ICE if `RUST_LOG=rustc::middle::liveness` is given
due to borrow failure.
Add docs for more crates