rustc: Start accepting `*const T`

This does not yet change the compiler and libraries from `*T` to `*const T` as
it will require a snapshot to do so.

cc #7362
rustdoc: show default type parameters in generics

fix #12291
Make destructuring trait reference work

Closes #15031.
Fix spurious non-exhaustive errors for cross-crate struct variants
RegionFolder should only invoke callback on free regions.

In other words, Late-bound regions that occur non-free should be
skipped.

Fix #10846.
Remove duplicated test files

Even if they used to test different things in the past, they are
now identical to other files.

Closes #11496
libsyntax: don't allow enum structs with no fields

Unit-like structs are written as `struct Foo;`, but we erroneously
accepted `struct Foo();` and took it to mean the same thing. Now we
don't, so use the `struct Foo;` form!

[breaking-change]
Change /bin/env to /usr/bin/env in helper python script, as it is more portable
Register new snapshots
auto merge of #15061 : pnkfelix/rust/fsk-fix-issue-10846, r=nikomatsakis

In other words, Late-bound regions that occur non-free should be
skipped.

Fix #10846 (specifically the ICE, not the weakness in the current type inference).
auto merge of #15083 : edwardw/rust/destructure-trait-ref, r=pcwalton

Closes #15031.
auto merge of #15086 : jakub-/rust/xc-struct-variants-match, r=alexcrichton

Turns out field names of struct variants are not encoded in crate metadata.
auto merge of #15089 : tomjakubowski/rust/rustdoc-default-typarams-12291, r=alexcrichton

fix #12291
auto merge of #15098 : ben0x539/rust/nullary-tuple-struct, r=pcwalton

Reject `struct Foo();` to fix #15095.
auto merge of #15100 : rapha/rust/master, r=alexcrichton

/usr/bin/env appears to be more portable.
auto merge of #15106 : Sawyer47/rust/rm-duplicated-tests, r=alexcrichton

Even if they used to test different things in the past, they are
now identical to other files.

Closes #11496
rustc: catch non-trait methods before typeck.

Closes #3973.
rustc: catch `impl X for Y` where X is not a trait in resolve.
auto merge of #14974 : Ryman/rust/non_trait_method, r=alexcrichton

Closes #3973.
libsyntax: Disallow struct literals after `if`, `while`, `match`, and
`for...in`.

Closes #14803.

If you used a structure literal after one of these keywords, surround it
in parentheses.

[breaking-change]