Re-exports core::str::Utf16CodeUnits in std::str

Closes #17751
Fix keyword table

Markdown tables require a header, and we don't want one.

Fixes #17528
Add `abstract`, `final`, and `override` to reserved keywords
Remove use of `final` and `override` (now reserved)
Add `abstract`, `final`, and `override` to rust.vim keyword list
Add tests for new reserved keywords `abstract`,`final`,`override`
auto merge of #17840 : Sawyer47/rust/issue-17751, r=huonw

Closes #17751
add #[experimental] as_string/as_vec functions

This provides a way to pass `&[T]` to functions taking `&U` where `U` is
a `Vec<T>`. This is useful in many cases not covered by the Equiv trait
or methods like `find_with` on TreeMap.
auto merge of #17447 : thestinger/rust/silly_string, r=aturon

This provides a way to pass `&[T]` to functions taking `&U` where `U` is
a `Vec<T>`. This is useful in many cases not covered by the Equiv trait
or methods like `find_with` on TreeMap.
auto merge of #17855 : steveklabnik/rust/fix_table_reference, r=alexcrichton

Markdown tables require a header, and we don't want one.

Fixes #17528
auto merge of #17866 : jgallagher/rust/reserve-inheritance-keywords, r=huonw

Closes #17862
Implement flexible target specification

Removes all target-specific knowledge from rustc. Some targets have changed
during this, but none of these should be very visible outside of
cross-compilation. The changes make our targets more consistent.

iX86-unknown-linux-gnu is now only available as i686-unknown-linux-gnu. We
used to accept any value of X greater than 1. i686 was released in 1995, and
should encompass the bare minimum of what Rust supports on x86 CPUs.

The only two windows targets are now i686-pc-windows-gnu and
x86_64-pc-windows-gnu.

The iOS target has been renamed from arm-apple-ios to arm-apple-darwin.

A complete list of the targets we accept now:

arm-apple-darwin
arm-linux-androideabi
arm-unknown-linux-gnueabi
arm-unknown-linux-gnueabihf

i686-apple-darwin
i686-pc-windows-gnu
i686-unknown-freebsd
i686-unknown-linux-gnu

mips-unknown-linux-gnu
mipsel-unknown-linux-gnu

x86_64-apple-darwin
x86_64-unknown-freebsd
x86_64-unknown-linux-gnu
x86_64-pc-windows-gnu

Closes #16093

[breaking-change]
Windows (and not only) fixes
Temporarily support old and new Windows target triples, for compatability
Fix warnings in target specs
Fix tests