Refactor `Vec::map_in_place` to move code out of `PartialVec`

Additionally, support zero-sized types.
Replaced some TODO by FIXME

closes #17478
mk: Start producing binary tarballs on windows

We may use these for creating combined rust/cargo installers
install: Fix the install.sh script to work with spaces

Makes it work on windows
Removed some unnecessary RefCells from resolve
auto merge of #17640 : brson/rust/wininst, r=alexcrichton

This makes the windows `make dist` target start producing binary tarballs, and tweaks install.sh so they work, in preparation for working on a combined Rust+Cargo installer.
librustc: Stop looking in metadata in type contents.

4x improvement in pre-trans compile time for rustc.
librustc: Forbid `..` in range patterns.

This breaks code that looks like:

    match foo {
        1..3 => { ... }
    }

Instead, write:

    match foo {
        1...3 => { ... }
    }

Closes #17295.

[breaking-change]
Ignore yet another windows debuginfo test
auto merge of #17647 : pcwalton/rust/stop-looking-in-metadata-in-tc, r=cmr

I don't know exactly what made this regress so badly…maybe it was all the lifetimes that @eddyb landed. According to `git blame` this is all somewhat old code. Regardless this is an enormous improvement in compile times.

r? @brson
Teach libsyntax about `if let`
Desugar 'if let' into the appropriate 'match'
Add tests for `if let`
Produce a better error for irrefutable `if let` patterns

Modify ast::ExprMatch to include a new value of type ast::MatchSource,
making it easy to tell whether the match was written literally or
produced via desugaring. This allows us to customize error messages
appropriately.
Move `if let` behind a feature gate
Update based on PR feedback
Add `if let` to the reference
Update after the fall out from the syntax::ptr changes
Temporarily remove the description for the diagnostic E0162

It turns out that adding new diagnostics is causing link failures
in runpass-full-deps tests. Further investigation pending.
auto merge of #17639 : brson/rust/windbg2, r=pcwalton

I swear this is the last step. p=1 please so i can get the bots changed over before the test suite regresses again.