Implement `reserve_len` and `reserve_len_exact` for VecMap
clean up `BinaryHeap` code
Rename to_ascii_{lower,upper} to to_ascii_{lower,upper}case, per #14401

[breaking-change]
mk: Build jemalloc with -ffunction-sections

It's quite possible that small programs don't use all of jemalloc, and building
with -ffunction-sections and -fdata-sections allows the linker (via
--gc-sections) to strip out all unused code at link time. This decreases the
size of a "hello world" executable for me from 716K to 482K with no measurable
impact on link time. After this patch jemalloc is still the largest portion of
our hello world executables, but this helps cut down on the size at least
somewhat!
Remove Ascii, AsciiCast, OwnedAsciiCast, AsciiStr, IntoBytes, IntoString.

As a replacement, add is_ascii() to AsciiExt, and implement AsciiExt for u8 and char.

[breaking-change]
std::ascii: Use u8 methods rather than the maps directly.
Use the typer in ExprUseVisitor and do not hard code to tcx
Remove the regionck impl of Typer and just use fcx. This requires
modifying fcx to remove type variables where possible, but that's it.
Extend Typer interface to include `expr_ty_adjusted` so that we can
remove another direct dependency on tcx from euv.
Remove `McResult` from the mem-categorization interface.
Move mem-categorization more things to use TYPER for the method origin
Fix up remaining usage of `to_ascii`.
Fix up remaining usage of `to_ascii`.
Prevent Regex::new() from panicking when a non-AST item is repeated

This bug has also affected the regex! macro, which has caused an ICE
when such an invalid expression is provided.

Fixes #20208.
auto merge of #20218 : alexcrichton/rust/jemalloc-sections, r=luqmana

It's quite possible that small programs don't use all of jemalloc, and building
with -ffunction-sections and -fdata-sections allows the linker (via
--gc-sections) to strip out all unused code at link time. This decreases the
size of a "hello world" executable for me from 716K to 482K with no measurable
impact on link time. After this patch jemalloc is still the largest portion of
our hello world executables, but this helps cut down on the size at least
somewhat!
typeck: boxed closures can't capture by value

closes #19141
closes #20193
closes #20228
Require types to opt-in Sync
Rename `OwnedPtr` to `UniquePtr`
Make Send and Sync traits unsafe
Move RacyCell to `std::comm`

RacyCell is not exactly what we'd like as a final implementation for
this. Therefore, we're moving it under `std::comm` and also making it
private.