Avoid building as root with `sudo make install`

When running `sudo make install`, we only want to run the actual install
as root, the building of the documentation and the distribution folder
should happen as the non-root user.

Related to #13728.
Add help diagnostic messages

This adds ‘help’ diagnostic messages to rustc. This is used for anything that
provides help to the user, particularly the `--explain` messages that were
previously integrated into the relevant error message.
Changed `extern crate foo as bar;` error message

Closes #17709
adding iterator benches to tree-based maps for comparison purposes
flesh out BTree docs
doc fixups
librustdoc/html: recognize slices not to nest A tags.

1. A slice of parametrized type, say
   BorrowedRef { ... Vector(Generic(T)) }, is rendered as
   "<a href='primitive.slice.html'>&amp;[T]</a>"
2. A slice of other types, say
   BorrowedRef { ... Vector(int) }, is rendered as
   "<a href='primitive.slice.html'>&amp;[</a>
    <a href='primitive.int.html'>int</a>
    <a href='primitive.slice.html'>]</a>"
3. Other cases, say BorrowedRef { ... int }, are
   rendered as same as before:
   "&<a href='primitive.int.html'>int</a>"

Relevant W3C specs:
- http://www.w3.org/TR/html401/struct/links.html#h-12.2.2
  12.2.2 Nested links are illegal
- http://www.w3.org/TR/html5/text-level-semantics.html#the-a-element
  states A tag must not enclose any "interactive contents"
  which include A tags themselves.
readme: Link 'Using' wiki page instead of 'Getting started'.

The Windows-specific instruction under 'Quick Start' linked the wiki article on getting started developing Rust itself, but the quick start is just about obtaining a working Rust installation. The actual wiki page with Windows-specific instructions was difficult to find.
Fix several issues with the struct and enum representability-checking logic.
In sieve example, end iteration sooner

The Sieve algorithm only requires checking all elements up to and including the square root of the maximum prime you're looking for. After that, the remaining elements are guaranteed to be prime.
Update README.md

Added 64-bit Windows support to the list of platforms. Support for 64-bit Windows was added in Rust 0.12.0. See  https://mail.mozilla.org/pipermail/rust-dev/2014-October/011267.html for the release notes.
vec: minor cleanup
implement Box<[T]> <-> Vec<T> conversions
Remove the runtime guide.

Now that libgreen is gone, this is all wrong.

Fixes #17923
improve the performance of the vec![] macro

Closes #17865
auto merge of #17920 : thestinger/rust/vec, r=aturon

Introduce conversions between `Box<[T]>` and `Vec<T>` and use it to reimplement the `vec![]` macro for efficiency.
remove shootout warnings
Teach libsyntax about `while let`
Desugar `while let` into `loop { match { ... } }`
Move `while let` behind `while_let` feature gate