As of 4.9.2, gcc started passing -fno-lto to collect2, or to ld if collect2 cannot be found.  The latter is the case for our bundles, because we don't include collect2.  Unfortunately, ld does not understand this option and errors out.
On the bright side, -fno-use-linker-plugin still works to suppress gcc's LTO, so we can drop -fno-lto.
Move gcc back to rustlib\<triple>\bin
Prefer bundled linker.
Include some of the more popular Windows import libs into the bundle.
Fix ICEs that involved quasi-quotation

* fixed get_tt for doc comments
* properly handle MatchNt in `quote`

Fixes #18763
Fixes #18775
Add Encodable and Decodable for VecMap
Use FnvHashMap instead of HashMap in rustc
Fix broken documentation link
Rogue 'panic' -> 'fail' in guide.

Should refer to handling panicking tasks like any other computation
that may _fail_, not any other computation that may _panic_.
Document ast::Ty_
Fix 'renamed lint' warnings
vim: move 'move' to rustStorage
note the intent of reforming task spawning
rustdoc: revise method counts in stability summary

Previously, the stability summary page attempted to associate impl
blocks with the module in which they were defined, rather than the
module defining the type they apply to (which is usually, but not
always, the same). Unfortunately, due to the basic architecture of
rustdoc, this meant that impls from re-exports were not being counted.

This commit makes the stability summary work the same way that rustdoc's
rendered output does: all methods are counted alongside the type they
apply to, no matter where the methods are defined.

In addition, for trait impl blocks only the stability of the overall
block is counted; the stability of the methods within is not
counted (since that stability level is part of the trait definition).

Fixes #18812
Add regression test for #18566
Add optional messages to the unreachable macro.

Closes #18842.
auto merge of #18789 : cuviper/rust/vim-move, r=alexcrichton

It used to be in `rustKeyword`, until commit 5c75f210ba6e450fb1603b50ca0a4805f13173d7 removed it, and then #18782 restored it again.  However, this is now a closure modifier, and I think moving it to `rustStorage` is more appropriate to highlight it similarly to `mut`, `ref`, and the `&` sigil.
Add 'move' keyword to emacs, kate, and vim editor modes.
Set exceeding bitshifts lint to deny

Discussed in #18587
auto merge of #18797 : vadimcn/rust/prefer-bundled2, r=alexcrichton

Based on Windows bundle feedback we got to date, 
- We *do* want to prefer the bundled linker: The external one might be for the wrong architecture (e.g. 32 bit vs 64 bit).  On the other hand, binutils don't add many new features these days, so using an older bundled linker is not likely to be a problem.
- We *do* want to prefer bundled libraries: The external ones might not have the symbols we expect (e.g. what's needed for DWARF exceptions vs SjLj).  Since `-L rustlib/<triple>/lib` appears first on the linker command line, it's a good place to keep our platform libs that we want to be found first.

Closes #18325, closes #17726.