Refactor `Vec::map_in_place` to move code out of `PartialVec`

Additionally, support zero-sized types.
Include ChaCha pseudorandom generator
Fold `MethodOrigin`s to resolve inference variables they may contain.
Fixes #17662.
Remove unnecessary allocation, update API name for starting the rustc driver.
Add missing case for pointer -> int when translating constant cast expressions

Closes issue #17458
Disallow casting directly between C-like enums and unsafe pointers

This closes issue #17444
Add regression test for issue #17458
Add regression test for issue #17444
Make find->tidy resilient to filenames with spaces
Fix async assertion in test_sendable_future
Make --dep-info escape spaces in filenames

Closes #17627
Remove all use of librustuv
Remove iotest macro

This commit removes the `iotest!` macro from `std::io`. The macro was
primarily used to ensure that all io-related tests were run on both
libnative and libgreen/librustuv. However, now that the librustuv stack
is being removed, the macro is no longer needed.

See the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230) for more context.

[breaking-change]
Remove librustuv

This commit removes the `librustuv` crate.

See the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230) for more context.

See [green-rs](https://github.com/alexcrichton/green-rs/) for a possible
migration path if you wish to continue using green-threaded I/O. The
library provides its own I/O API surface.

[breaking-change]
librustc/driver: expose build information of rustc.

CFG_RELEASE, CFG_VER_HASH and CFG_VER_DATE were only available as an output
to stdout from the driver::version() function that had an inconvenient
signature.
rust.css: Make it more clear when code spans are links
Remove libuv, gyp

This commit removes the libuv and gyp submodules, as well as all build
infrastructure related to them.

For more context, see the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230)

[breaking-change]
Remove std::io::signal

The `std::io::signal` API was only implemented under `librustuv`, which
is now being removed. Rather than keep around an unimplemented API, this
commit removes it altogether.

See the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230) for more context.

See [green-rs](https://github.com/alexcrichton/green-rs/) for a possible
migration path for signal handling code, although in the long run we
plan to add native signal handling to `std::io`.

[breaking-change]
Guide: clarify exporting

Mention that using `pub` is called exporting.

Remove that `use` is called re-exporting, because `pub use` should be
called re-exporting. The guide currently doesn't cover `pub use`.
Add some notes about macro scoping