Revamp doc index

Fixes #14972
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.
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
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.
Auto-derive Clone for syntax::diagnostic::Level.
std: Refine and document HashMap's code

* branchless `bucket.next()`
* robin_hood is a free function
* fixed the resize policy that was off by one
* documented the growth algorithm
* updated documentation after interface changes
* removed old fixmes
std: Fix overflow of HashMap's capacity
collections/slice: Reexport mut_ref_slice in addition to ref_slice.
Update language item from 'share' to 'sync' #16988
Work around inability to link lifetime of ref bindings (#16994)
auto merge of #16990 : DiamondLovesYou/rust/level-derive-clone, r=alexcrichton
Update fannkuchredux benchmark

From the discussion on reddit:
http://www.reddit.com/r/rust/comments/2fenlg/benchmark_improvement_fannkuchredux/

This adds two variants: the primary, that uses an unsafe block, and a secondary
that is completely safe.

The one with the unsafe block matches clang's performance and beats gcc's.
Check concrete type in impls with no trait

closes #16955
auto merge of #16843 : bkoropoff/rust/reader-writer-box, r=alexcrichton

Cargo needs this to be able to instantiate `TerminfoTerminal<Box<Writer+'a>>` for 'a other than 'static.
Make integer bit count methods return uints

Fixes rust-lang/rfcs#224