Fix ICEs that involved quasi-quotation

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

Fixes #18763
Fixes #18775
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]
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
Take parameters by-value in Signed trait
Deprecate Signed method wrappers
Move abs_sub to FloatMath

This removes the need for libcore to depend on libm. `abs_sub` is not as useful for integers.
Create UnsignedInt trait and deprecate free functions
Move saturating operator methods into Int
Rejig Int impl macros

This should make implementing the checked operator methods easier
Move checked arithmetic operators into Int trait
Deprecate Bounded trait
Deprecate Zero and One traits
Deprecate Num, Unsigned and Primitive
Deprecate signum wrapper and clean up signed impls
Clean up core::num doc comments
Remove lots of numeric traits from the preludes

Num, NumCast, Unsigned, Float, Primitive and Int have been removed.
Remove Signed trait and add SignedInt trait

The methods have been moved into Float and SignedInt
Fix stability_summary fallout
Tweak and add test for detecting libraries with mismatching target triples.

Closes #10814.