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.
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)
Updated to new extern crate syntax.
Added warning for old deprecated syntax
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
native: Remove a bogus assert in net::read

This assert was likely inherited from some point, but it's not quite valid as a
no-timeout read may enter this loop, but data could be stolen by any other read
after the socket is deemed readable.

I saw this fail in a recent bors run where the assertion was tripped.
Add some tests for closures that return `!`
Handle custom deref returning fat pointers

Closes #16930
bitv: add larger tests, better benchmarks & remove dead code.

There were no tests for iteration etc. with more than 5 elements,
i.e. not even going beyond a single word. This situation is rectified.

Also, the only benchmarks for `set` were with a constant bit value,
which was not indicative of every situation, due to inlining & branch
removal. This adds a benchmark at the other end of the spectrum: random
input.