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
Limit recursion depth for macro expansions, closes #17628
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
auto merge of #17678 : fhahn/rust/issue-17628-infinite-recursion, r=alexcrichton

This is a patch for #17628, thanks to @kmcallister for your helpful hints!
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]