[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
Add testing tutorial to docs
Remove `extern mod foo (name="bar")` syntax, closes #9543
Recognize LLVM 3.4 when building on opensuse with --llvm-root specified.
debuginfo: Fix issue #11083 and some minor clean up.
debuginfo: Add test case for recursive enum types (issue #11083)
Inject std libs with versions
auto merge of #11274 : michaelwoerister/rust/issue11083, r=pcwalton

This pull request fixes #11083. The problem was that recursive type definitions were not properly handled for enum types, leading to problems with LLVM's metadata "uniquing". This bug has already been fixed for struct types some time ago (#9658) but I seem to have forgotten about enums back then. I added the offending code from issue #11083 as a test case.
auto merge of #11266 : lyuts/rust/opensuse_build, r=brson

Minor change for configuration script allows to build rust on openSUSE with using llvm installed from repos.
auto merge of #10696 : fhahn/rust/issue9543-remove-extern-mod-foo, r=pcwalton

This patch for  #9543 throws an `obsolete syntax` error for `extern mod foo (name="bar")` . 
I was wondering if [this](https://github.com/fhahn/rust/compare/mozilla:master...fhahn:issue9543-remove-extern-mod-foo?expand=1#diff-da9d34ca1d0f6beee2838cf02e07345cR4444) is the correct place to do this?

I think the wording of the error message could probably be improved as well.

If this approach is OK, I'm going to run the whole test suite tomorrow and update the old syntax to the new one.
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`
libsyntax: De-`@mut` `Parser::tokens_consumed`