Handle emitting debug info for unboxed closures

This fixes an ICE.  Closes issue #17021
Build regression test for issue #17021 with -g

This causes it to hit the previously ICEing debuginfo codepath
Fix handling of struct variants in a couple of places

Fixes #17405.
Fixes #17518.
Fixes #17800.
update jemalloc

This includes optimizations to the thread cache and support for
shrinking and expanding huge (>4M) allocations in-place.
auto merge of #17414 : jakub-/rust/issue-17405, r=alexcrichton

Fixes #17405.
Fixes #17518.
Fixes #17800.
Rename the file permission statics in std::io to be uppercase

For example, this renames `GroupRWX` to `GROUP_RWX`, and deprecates the old
name. Code using these statics should be updated accordingly.
Remove the #[allow(non_uppercase_statics)] attr from bitflags!
Fixed iOS build (statics name lint)
auto merge of #17781 : P1start/rust/bitflags-lints, r=alexcrichton

Closes #17773.
rustdoc: make calls of markdown::render safer

Previously, external code might call `markdown::render()` without having
called `markdown::reset_headers()`, meaning the TLS key
`used_header_map` was unset.  Now `markdown::render()` ensures that
`used_header_map` is set by calling `reset_headers` if necessary.

Fix #17736
rustdoc: Correctly name lifetimes in bounds

Fix #16518
rustdoc: Support unboxed fn sugar in bounds
auto merge of #17803 : bkoropoff/rust/issue-17021, r=alexcrichton

This closes issue #17021.
rustdoc: Remove dummy UnknownBound variant
auto merge of #17812 : thestinger/rust/jemalloc, r=alexcrichton

This includes optimizations to the thread cache and support for
shrinking and expanding huge (>4M) allocations in-place.
auto merge of #17814 : vhbit/rust/ios-build-fix, r=huonw
rustdoc: Include lifetimes in re-exported bounds

Fix #17818
Add example to doc for `slice::ImmutableSlice::binary_search`.

Fix #17817.
auto merge of #17796 : tomjakubowski/rust/rustdoc-ice-17736, r=alexcrichton

Previously, external code might call `markdown::render()` without having
called `markdown::reset_headers()`, meaning the TLS key
`used_header_map` was unset.  Now `markdown::render()` ensures that
`used_header_map` is set by calling `reset_headers` if necessary.

Fix #17736
auto merge of #17798 : tomjakubowski/rust/rustdoc-fix-bounds, r=alexcrichton

This PR adds support in rustdoc for properly naming lifetimes in bounds, instead of just showing `'static` for everything. It also adds support for unboxed function sugar bounds, which were also previously rendered as `'static`.