Do not attempt to autoderef `!`

This prevents error spam when attempting to look up overload traits.
Disallow dereference of `!`

Later compiler passes are not prepared to deal with deref of
`ty_bot` and will generate various ICEs, so disallow it outright for now.

Closes issue #17373
Disallow index of `!`

This avoids ICEs in later passes that cannot cope with this construct
Add regression test for issue #17373
Add test that `!` cannot be indexed
Update CONTRIBUTING.md with new issues policy
Fix snapshot builders

The test in question does not pass when cross compiling because the syntax
extension must always be compiled for the host, not the target.
Lint stability now checks macro arguments.

Closes #17185.
Update calls of deprecated functions in macros.

Fallout of #17185.
Fix deprecation warnings in check-docs.

Fallout of closing #17185.
auto merge of #17440 : alexcrichton/rust/fix-snapshot, r=brson

The test in question does not pass when cross compiling because the syntax
extension must always be compiled for the host, not the target.
auto merge of #17408 : bkoropoff/rust/bot-ice, r=alexcrichton

- Don't attempt to autoderef `!`.  The `Deref`/`DerefMut` trait lookup would generate a bunch of unhelpful error spew.
- Don't allow explicit deref of `!`, since later passes just ICE.  This closes issue #17373 
- Don't allow explicit index of `!`, since later passes just ICE.  There does not seem to be an issue associated with this
auto merge of #17286 : vberger/rust/deprecated_in_macros, r=aturon

Closes #17185.

The stability lint will now check code generated by macro expansion. It will allow to detect :
- arguments passed to macros using deprecated (and others) items
- macro expansion generating code using deprecated items due to its arguments (hence the second commit, fixing such issue found in libcollections)

Checking is still done at expansion, but it will also detect a macro explicitly using a deprecated item in its definition.
auto merge of #17432 : nick29581/rust/contrib, r=brson

r? @brson
librustc: Parse and resolve higher-rank lifetimes in traits.

They will ICE during typechecking if used, because they depend on trait
reform.

This is part of unboxed closures.