auto merge of #14878 : vtsatskin/rust/rustdoc-sidebar-click-targets, r=alexcrichton

There was feedback gathered by @bjz which request for larger click targets in the rustdoc sidebar. Here's my attempt at that.

My only concern with this patch is the removal of `<br>` between sidebar links. This may break formatting for text-only viewers of this documentation. If there is a large enough demographic of people that will be affected, perhaps we can try switching the structure of each sidebar block sidebar to an `<ol>` with each item as a `<li>`. 

* Change links to display:block for click larger targets
* Remove linebreaks due to extra space
* Adjust margins so that element spacing stays the same
* Sidebar item hover background colour chosen from `<pre>` styling
auto merge of #14739 : zwarich/rust/mut-unique-path, r=nikomatsakis

Implement the stronger guarantees for mutable borrows proposed in #12624.
auto merge of #14874 : pcwalton/rust/enum-to-float-casts-part-deux, r=alexcrichton

Closes #14794.

If you're casting from an enum to a float, cast through an integer
first.

[breaking-change]

r? @alexcrichton
auto merge of #14884 : huonw/rust/getoptsfail, r=alexcrichton
Register new snapshots
rustc: Obsolete the `@` syntax entirely

This removes all remnants of `@` pointers from rustc. Additionally, this removes
the `GC` structure from the prelude as it seems odd exporting an experimental
type in the prelude by default.

Closes #14193
[breaking-change]
auto merge of #14835 : alexcrichton/rust/no-more-at, r=brson

All functionality is now available through `Gc<T>` and `box(GC) expr`. This change also removes `GC` from the prelude (it's an experimental feature).
Updated compiler-rt

Previous update unfortunately included changes which
broke Android compilation. This update fixes it and
should allow correct compilation of SjLj for iOS and
all builtins for Android.
Fix an ICE on a cast from an inferred nil to uint

Fixes #10991.
Small improvement for json PrettyEncoder
Potential fix for Win32 build

It seems in one of rebases I’ve resolved conflicts wrong and left one redundant line, it is absent in current master and it might cause compilation failure by copying file into itself.
Register new snapshots
auto merge of #14715 : vhbit/rust/ios-pr2, r=alexcrichton
auto merge of #14900 : alexcrichton/rust/snapshots, r=huonw

Closes #14898
Closes #14918
Fix rustdoc's formatting of lifetimes

rustdoc was previously formatting lifetimes with two apostrophes, presumably
as a result of #14797.
auto merge of #14906 : P1start/rust/rustdoc-lifetimes, r=huonw

rustdoc was previously formatting lifetimes with two apostrophes, presumably as a result of #14797.
auto merge of #14932 : Sawyer47/rust/json-smallfix, r=huonw
auto merge of #14882 : pcwalton/rust/drop-underscore, r=nikomatsakis

This code didn't do anything, but was a vestige of the old semantics for
`let _ = ...`.

Closes #10488. (As near as I can tell anyhow.)

r? @nikomatsakis
Add examples of how to read from a channel with a timeout, refs #13862
auto merge of #14877 : Seldaek/rust/commdocs, r=alexcrichton

Finally what I promised to do in #13862 /cc @alexcrichton