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"
Introduce the cargo run command earlier (squashed)
vim: Stop setting conceallevel in the syntax file

We shouldn't be setting conceallevel in the syntax file. Besides not
being able to undo this if we switch to another syntax later, it also
interferes with embedding rust in other filetypes (such as markdown).

Instead, set it in the ftplugin, where it belongs.
Make it pass the pretty-printer test.
Followup to PR #16477: a run-pass regression test for Issue #15750.
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
librustc: Implement simple `where` clauses.

These `where` clauses are accepted everywhere generics are currently
accepted and desugar during type collection to the type parameter bounds
we have today.

A new keyword, `where`, has been added. Therefore, this is a breaking
change. Change uses of `where` to other identifiers.

[breaking-change]
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.
auto merge of #16486 : kballard/rust/vim_conceal, r=chris

We shouldn't be setting conceallevel in the syntax file. Besides not
being able to undo this if we switch to another syntax later, it also
interferes with embedding rust in other filetypes (such as markdown).

Instead, set it in the ftplugin, where it belongs.
auto merge of #16424 : pcwalton/rust/where-clauses, r=nikomatsakis

These `where` clauses are accepted everywhere generics are currently
accepted and desugar during type collection to the type parameter bounds
we have today.

A new keyword, `where`, has been added. Therefore, this is a breaking
change. Change uses of `where` to other identifiers.

[breaking-change]

r? @nikomatsakis (or whoever)
auto merge of #16494 : pnkfelix/rust/fsk-quotstx-followup, r=alexcrichton

Followup to PR #16477: a run-pass regression test for Issue #15750.