Remove redundant variable in LruCache::put
Eliminate unecessary extra sigil node from LruCache.

Instead of allocating both head and tail nodes for the ends of the node
list, a single node can be allocated and linked circularly instead,
making it act as both the head and the tail of the list at the same
time.
doc: add webfonts and tweak the styles accordingly
green: Fix missing Send bounds on procedures

These were mistakenly not updated as part of the removal of the Send bound by
default on procedures.

cc #13629
Eliminate the need for Options in LruEntry.

LruEntry nodes previously used Option to encapsulate the key and value
fields. This was used merely as a way avoid having values for the sigil
node. Apart from wasting a few bytes for the discriminant, this
cluttered the rest of the code, since these fields always contained
Some on regular nodes as a class invariant.

The Option wrapping was removed, and the values in the sigil field are
initialized using mem::init, so that they don't contain any real data.
rustuv: Fix a tcp connect timeout bug on windows

When a uv_tcp_t is closed in libuv, it will still invoke the pending connect_cb,
and I thought that it would always call it with ECANCELED, but it turns out that
sometimes we'll get a different error code instead. Handle this case by checking
to see if the request's data is NULL and bail out if so (the timeout expired).
doc: unifying with rustdoc

Conflicts:
	src/doc/rust.md
Fix misspellings in comments.
Just some general cleanup in the HashMap module

I went through the HashMap module, fixed spelling mistakes, minor
inefficiencies, added tests, and other trivial changes.
auto merge of #13587 : adrientetar/rust/more-docs, r=brson

- Use Fira Sans for headlines, Heuristica for the body (Adobe Utopia derivative). Both are licensed under the SIL OFL license. (I didn't include BoldItalic because it is sparingly used.)
- Split TOC into 2 columns for the docs except manual (too tall, too wide to be readable).
- Some fixes to rustdoc, bring styles in coherency with eachother
- A few tweaks

Two examples: [modified tutorial](http://adrientetar.legtux.org/cached/rust-docs/tutorial.htm) and [modified manual](http://adrientetar.legtux.org/cached/rust-docs/manual.htm).

Rustdoc got some fixes, here is [modified `enum.FileType`](http://adrientetar.legtux.org/cached/rust-docs/enum.FileType.htm), [modified `std`](http://adrientetar.legtux.org/cached/rust-docs/std.htm) and [modified `std::io`](http://adrientetar.legtux.org/cached/rust-docs/io.htm).

#13484, #13485 follow-up.

cc @brson
auto merge of #13618 : yuriks/rust/lru-cache, r=brson

Just a few space saving optimizations that end up making the code less cluttered too. I'd like to someone to review the last commit closely, I don't have much experience with writing unsafe code, I had someone walk me through how to use cast::forget in IRC.
Fix ICE when reporting closure and proc mismatch

Closes #13599
auto merge of #13630 : alexcrichton/rust/correct-green-bounds, r=brson

These were mistakenly not updated as part of the removal of the Send bound by
default on procedures.

cc #13629
auto merge of #13646 : cgaebel/rust/hashmap-cleanup, r=alexcrichton

I went through the HashMap module, fixed spelling mistakes, minor inefficiencies, added tests, and other trivial changes. Hopefully this won't be a controversial PR.
auto merge of #13653 : jbcrail/rust/fix-comment-mistakes, r=alexcrichton
Specialize kinds inference for `Unsafe<T>`

This patch adds a special rule for `Unsafe<T>` and makes it `Share`
regardless of whether T is `Share`.

[breaking-change]

Closes #13125
auto merge of #13583 : FlaPer87/rust/special-unsafe, r=nikomatsakis

This patch adds a special rule for `Unsafe<T>` and makes it `Share`
regardless of whether T is `Share`.

[breaking-change]

Closes #13125

cc @nikomatsakis
auto merge of #13657 : edwardw/rust/ppaux-ice, r=alexcrichton

Closes #13599
auto merge of #13638 : alexcrichton/rust/fix-windows-tcp-timeout-bug, r=brson

When a uv_tcp_t is closed in libuv, it will still invoke the pending connect_cb,
and I thought that it would always call it with ECANCELED, but it turns out that
sometimes we'll get a different error code instead. Handle this case by checking
to see if the request's data is NULL and bail out if so (the timeout expired).