[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
Rewrite SyntaxEnv

I'd really like to be able to do something like

struct MapChain<'next, K, V> {
    info: BlockInfo,
    map: HashMap<K, V>,
    next: Option<&'next mut MapChain<'next, K, V>
}

but I can't get the lifetimes to work out.
Add .insert() and .insert_char() methods to ~str.
Add testing tutorial to docs
Fix usage of rustc --ls on invalid files

Closes #11259
Add linting for `crate_type` attribute values.

This ensures that the `crate_type` attribute always contains a value,
and does not contain an invalid value.
Update references to rustc.rc in README.
Update AUTHORS.txt for 0.9
Bump more version numbers to 0.9
Give more effusive credit to authors
Bump version to 0.9
libsyntax: Make the parser mutable
libsyntax: De-`@mut` `quote_depth` in the parser
libsyntax: De-`@mut` `token` in the parser
libsyntax: De-`@mut` `Parser::span`
libsyntax: De-`@mut` `Parser::last_span`
libsyntax: De-`@mut` `Parser::last_token`
libsyntax: De-`@mut` `Parser::buffer`
libsyntax: De-`@mut` `Parser::buffer_start` and `Parser::buffer_end`