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 'renamed lint' warnings
vim: move 'move' to rustStorage
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.
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.
auto merge of #18808 : ebfe/rust/lint-names, r=alexcrichton
Document ast::Ty_
Try to remove ty_nil, some kind of error in exhaustiveness checking
Complete the removal of ty_nil, ast::LitNil, ast::TyBot and ast::TyUniq

[breaking-change]

This will break any uses of macros that assumed () being a valid literal.
Update tests accordingly
Update the reference