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
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
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.