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
auto merge of #20119 : FlaPer87/rust/oibit-send-and-friends, r=nikomatsakis

More work on opt-in built in traits. `Send` and `Sync` are not opt-in, `OwnedPtr` renamed to `UniquePtr` and the `Send` and `Sync` traits are now unsafe.

NOTE: This likely needs to be rebased on top of the yet-to-land snapshot.

r? @nikomatsakis 

cc #13231