Change method lookup to require invariance for mutable references

Fixes #17033.
Fixes #15965.
mk: Fix defs for i686-w64-mingw32
Document why `core::str::Searcher::new` doesn't overflow
Updated jemalloc
Remove build system support for i686-pc-mingw32 triple in favor if i686-w64-mingw32
Fix bad error message copypasta
Add a Rust string ostream for LLVM
Add -C remark for LLVM optimization remarks

Fixes #17116.
Remove unused, unsound method on StrInterner

The string slices returned by `get_ref` can actually be
invalidated by calling `clear`.  Since this method is unused,
it is easiest to simply remove it.

Closes #17181
Improve memory usage of libsyntax
Replaces some usage of `.to_string()` with `.into_string()`

Signed-off-by: Peter Atashian <retep998@gmail.com>
librustc: Forbid inherent implementations that aren't adjacent to the
type they provide an implementation for.

This breaks code like:

    mod foo {
        struct Foo { ... }
    }

    impl foo::Foo {
        ...
    }

Change this code to:

    mod foo {
        struct Foo { ... }

        impl Foo {
            ...
        }
    }

Additionally, if you used the I/O path extension methods `stat`,
`lstat`, `exists`, `is_file`, or `is_dir`, note that these methods have
been moved to the the `std::io::fs::PathExtensions` trait. This breaks
code like:

    fn is_it_there() -> bool {
        Path::new("/foo/bar/baz").exists()
    }

Change this code to:

    use std::io::fs::PathExtensions;

    fn is_it_there() -> bool {
        Path::new("/foo/bar/baz").exists()
    }

Closes #17059.

RFC #155.

[breaking-change]
These two lines are actually three.
Move info into individual modules.
Remove container guide.

This isn't really what guides are for, this information belongs in the
module-level docs.

Fixes #9314.
Properly implement Show for EnumSet
`rustc main.rs` generates main binary file
auto merge of #17130 : jakub-/rust/issue-17033, r=pcwalton

Fixes #17033.
Fixes #15965.

cc @nikomatsakis
auto merge of #17163 : pcwalton/rust/impls-next-to-struct, r=alexcrichton

type they provide an implementation for.

This breaks code like:

    mod foo {
        struct Foo { ... }
    }

    impl foo::Foo {
        ...
    }

Change this code to:

    mod foo {
        struct Foo { ... }

        impl Foo {
            ...
        }
    }

Closes #17059.

RFC #155.

[breaking-change]

r? @brson
auto merge of #17195 : tbu-/rust/pr_strfindoverflow2, r=alexcrichton
auto merge of #17196 : vhbit/rust/jemalloc-update, r=thestinger

Fixes #17168