Implement `reserve_len` and `reserve_len_exact` for VecMap
clean up `BinaryHeap` code
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
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.
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.
Implement `Sync` for some windows sys types
Rename `UniquePtr` to `Unique`

Mostly following the convention in RFC 356
Relax `Arc` bounds don't require Sync+Send

Besides the above making sense, it'll also allow us to make `RacyCell`
private and use UnsafeCell instead.
Keep track of the whole error chain
Make Barrier and Condvar Sync/Send
Impl Sync/Send for Rawlink
Implement Sync/Send for ArcInner and Weak
Add a Racy type to bench tests