Replace all references to "Win32" with "Windows".

For historical reasons, "Win32" has been used in Rust codebase to mean "Windows OS in general".
This is confusing, especially now, that Rust supports Win64 builds.

[breaking-change]
Replace #[cfg(target_os = "win32")] with #[cfg(target_os = "windows")]
Replace "ignore-win32" in tests with "ignore-windows"
~ -> Box in the manual

Fixes #16439
libcore: rename private cmp macros

eq_impl! => partial_eq_impl!
totaleq_impl! => eq_impl!
ord_impl! => partial_ord_impl!
totalord_impl! => ord_impl!
Introduce the cargo run command earlier (squashed)
Fix handling of ignored arguments in FFI wrappers for rust functions

Fixes #16441.
Make it pass the pretty-printer test.
auto merge of #16444 : steveklabnik/rust/fix_boxes_in_manual, r=brson

Fixes #16439
auto merge of #16470 : liigo/rust/rename-private-cmp-macros, r=brson

eq_impl! => partial_eq_impl!
totaleq_impl! => eq_impl!
ord_impl! => partial_ord_impl!
totalord_impl! => ord_impl!
auto merge of #16484 : dotdash/rust/empty_struct_wrapper_arg, r=luqmana

Fixes #16441.
librustc: Tie up loose ends in unboxed closures.

This patch primarily does two things: (1) it prevents lifetimes from
leaking out of unboxed closures; (2) it allows unboxed closure type
notation, call notation, and construction notation to construct closures
matching any of the three traits.

This breaks code that looked like:

    let mut f;
    {
        let x = &5i;
        f = |&mut:| *x + 10;
    }

Change this code to avoid having a reference escape. For example:

    {
        let x = &5i;
        let mut f; // <-- move here to avoid dangling reference
        f = |&mut:| *x + 10;
    }

I believe this is enough to consider unboxed closures essentially
implemented. Further issues (for example, higher-rank lifetimes) should
be filed as followups.

Closes #14449.

[breaking-change]
auto merge of #16122 : pcwalton/rust/lifetimes-in-unboxed-closures, r=pnkfelix

This patch primarily does two things: (1) it prevents lifetimes from
leaking out of unboxed closures; (2) it allows unboxed closure type
notation, call notation, and construction notation to construct closures
matching any of the three traits.

This breaks code that looked like:

    let mut f;
    {
        let x = &5i;
        f = |&mut:| *x + 10;
    }

Change this code to avoid having a reference escape. For example:

    {
        let x = &5i;
        let mut f; // <-- move here to avoid dangling reference
        f = |&mut:| *x + 10;
    }

I believe this is enough to consider unboxed closures essentially
implemented. Further issues (for example, higher-rank lifetimes) should
be filed as followups.

Closes #14449.

[breaking-change]

r? @pnkfelix
librustc: Stop assuming that implementations and traits only contain
methods.

This paves the way to associated items by introducing an extra level of
abstraction ("impl-or-trait item") between traits/implementations and
methods. This new abstraction is encoded in the metadata and used
throughout the compiler where appropriate.

There are no functional changes; this is purely a refactoring.
auto merge of #16286 : pcwalton/rust/associated-items-groundwork, r=nikomatsakis

methods.

This paves the way to associated items by introducing an extra level of
abstraction ("impl-or-trait item") between traits/implementations and
methods. This new abstraction is encoded in the metadata and used
throughout the compiler where appropriate.

There are no functional changes; this is purely a refactoring.

r? @nick29581
libsyntax: Accept `use foo as bar;` in lieu of `use bar as foo;`

The old syntax will be removed after a snapshot.

RFC #47.

Issue #16461.
auto merge of #16468 : pcwalton/rust/as-renaming-import, r=alexcrichton

The old syntax will be removed after a snapshot.

RFC #47.

Issue #16461.

r? @brson
auto merge of #16474 : MatejLach/rust/cargorun_fix, r=steveklabnik

This fixes #16451.

While moving things around, I also removed a bunch of unnecessary whitespace, however I can put it back in if that's undesired. 

Thanks.
auto merge of #16435 : vadimcn/rust/windows, r=pcwalton

Using "win32" to mean "Windows" is confusing, especially now, that Rust supports win64 builds.
Let's call spade a spade.