[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: Change `@mut Block` to `@Block`.
librustc: De-`@mut` `FnCtxt`.
librustc: De-`@mut` the type interner
librustc: De-`@mut` the `node_type_substs` table
librustc: De-`@mut` the type context's `methods` table
librustc: De-`@mut` the `trait_method_def_ids` table.
librustc: De-`@mut` the `trait_methods_cache`
librustc: De-`@mut` the `impl_trait_cache`
librustc: De-`@mut` `trait_refs`
librustc: De-`@mut` `trait_defs`
librustc: De-`@mut` `intrinsic_defs`
librustc: De-`@mut` the short names cache
librustc: De-`@mut` the `needs_unwind_cleanup_cache`
librustc: De-`@mut` the `tc_cache`