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
Fix spurious non-exhaustive errors for cross-crate struct variants
Refactor the unification code and rejuvenate the unit test
infrastructure that has been accidentally left out of the build
for a rather long time (it was still using `@DVec`!)
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 #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
test: readd TMPDIR to LD_LIBRARY_PATH for run-make

It was accidentally removed in #15006 and that somehow got past the
build bots, causing `src/test/run-make/c-dynamic-dylib` to fail on at
least my linux system.

This resolves #15103 (thanks to @alexcrichton!).
Add regression test for ICE from issue 10846.
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.
Allow trailing comma in `concat!`

(And in other extensions implemented with `get_exprs_from_tts` function).
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.
Docs: tutorial: Remove a couple references to `~T`