Add rustup.sh to the repo

Just to have it somewhere to point to. Updating it will not
automatically update the one on static.rust-lang.org.
Guide: Change >= to > in closure
Use local cache when there are unbound type variables and where clauses in scope.

Fixes #18209.
Fixed single quote around string slice and simplify example

This patch contains a fix for:
- single quote around string slice
- string: String is confusing for newbies and it's more readble if the
  argument name is different that the argument type name
vim: Fix :RustRun when cwd has a space in it
Fix codegen breaking aliasing rules for functions with sret results

This reverts commit a0ec902e239b2219edf1a18b036dd32c18d3be42 "Avoid
unnecessary temporary on assignments".

Leaving out the temporary for the functions return value can lead to a
situation that conflicts with rust's aliasing rules.

Given this:

````rust
fn func(f: &mut Foo) -> Foo { /* ... */ }

fn bar() {
    let mut foo = Foo { /* ... */ };

    foo = func(&mut foo);
}
````

We effectively get two mutable references to the same variable `foo` at
the same time. One for the parameter `f`, and one for the hidden
out-pointer. So we can't just `trans_into` the destination directly, but
must use `trans` to get a new temporary slot from which the result can
be copied.
build the crates guide
Improved examples on Vec documentation

- shrink_to_fit example is now more clear by asserting the capacity value
Add syntax::print::pprint::view_item_to_string

… similar to the existing `item_to_string`.

There may be more missing like this.
plugin-guide: nicer creation of the parser
Register new snapshots

This in theory enables uncommenting IndexMut implementations, but upon doing so
the compiler immediately segfaulted in stage1, so I'll leave those to a later
time.
Fail immediately if linking returns status code != 0
Update .mailmap
s/vtable2/vtable
Use type-safe wrapper for TypeFlags
Changes a little the description of take in the guide

Closes #18218
regex: Fix control flow in the parser
regex: Escaped literals can end ranges
regex: The first range in a character class can start with a left bracket
Make the Vec data structure layout match raw::Slice.

Fixes #18302

r? @thestinger