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
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_
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.
Set exceeding bitshifts lint to deny

Discussed in #18587
test: Rename files, fail -> panic.
Fix remaining documentation to reflect fail!() -> panic!()

Throughout the docs, "failure" was replaced with "panics" if it means a
task panic. Otherwise, it remained as is, or changed to "errors" to
clearly differentiate it from a task panic.
libsyntax: Forbid type parameters in field expressions.

This breaks code like:

    struct Foo {
        x: int,
    }

    let f: Foo = ...;
    ... f.x::<int> ...

Change this code to not contain an unused type parameter. For example:

    struct Foo {
        x: int,
    }

    let f: Foo = ...;
    ... f.x ...

Closes #18680.

[breaking-change]
Fix documentation bug

The first paragraph must be separated from the next paragraph.
Otherwise, rustdoc will consider the content of the latter as part of
the title.
auto merge of #18813 : csherratt/rust/add-encode-decode-vecmap, r=alexcrichton
rustc: do not inherit #[stable]

This patch tweaks the stability inheritance infrastructure so that
`#{stable]` attributes are not inherited. Doing so solves two problems:

1. It allows us to mark module *names* as stable without accidentally
marking the items they contain as stable.

2. It means that a `#[stable]` attribution must always appear directly
on the item it applies to, which makes it easier for reviewers to catch
changes to stable APIs.

Fixes #17484
Update tests for new stability inheritance rules
librustc: Allow linkage attribute on any statics, not just foreign statics.
librustc: Respect no-compiler-rt target option for static libs as well.
std: Rename AsRef{Reader,Writer} to ByRef{Reader,Writer}