Forbid the Sized bound on unsized types

closes #16800
Add note about string indexing.

Thanks @chris-morgan!
Revamp doc index

Fixes #14972
Allow `!` as the return type of proc/closure literals

Fixes #13490.
Relax lifetime bounds on Reader/Writer impls for trait boxes

Cargo needs this to be able to instantiate `TerminfoTerminal<Box<Writer+'a>>`
for 'a other than 'static.
Remove the branch merging optimisations for slice patterns

They were only correct in the simplest case. Some of the optimisations
are certainly possible but should be introduced carefully and only
when the whole pattern codegen infrastructure is in a better shape.

Fixes #16648.
Change rustc to say `array` instead of `vector`
Add unwrap method to MoveItems
Fix whitespace and missing parentheses.
Rename `RawPtr::to_option()` to `RawPtr::as_ref()`

As outlined in

  https://aturon.github.io/style/naming/conversions.html

`to_` functions names should only be used for expensive operations.
Thus `to_option` is better named `as_option`. Also, putting type
names into method names is considered bad style; what the user is
really trying to get is a reference. This `as_ref` is even better.

Also, we are missing a mutable version of this method. So add a
new trait `RawMutPtr` with a corresponding `as_mut` methode.

Finally, there is a bug in the signature of `to_option` which has
been around since lifetime elision: originally the returned reference
had 'static lifetime, but since the elision changes this become
the lifetime of the raw pointer (which does not make sense, since
the pointer lifetime and referent lifetime are unrelated). Fix
the bug to return a reference with a fresh lifetime (which will
be inferred from the calling context).

[breaking-change]
Have std::io::TempDir::new and new_in return IoResult

This allows using `try!()`

[breaking-change]

Fixes #16875
Make doc search results use <a> tags instead of js for navigating

This has the primary advantage of not interfering with browser default
behavior for links like being able to cmd/ctrl+click on a result to open
the result in a new tab but leave the current page as-is (previous
behavior both opened a new tab and changed the current tab's location to
the result's)
Second approach - using type contents
Updated to new extern crate syntax.
Added warning for old deprecated syntax
Fix MIPS target

Add missing liblibc constants
core: Make TwoWaySearcher reset its prefix memory when shifting by byteset

Closes #16878.
Add many comments to TwoWaySearcher.
std: branchless bucket distance for hashmap
std: RawTable exposes a safe interface for HashMap

Introduced a new growth algorithm.
std: Split hashmap.rs into modules