Add lru_cache to libextra
Disable priv in std::comm::Port, etc

It's useful to allow users to get at the internal std::rc::comm::Port,
and other such fields, since they implement important traits like
Select.
don't create intermediate string while creating json (rustdoc)
Add struct and type doc comments for extra::url::*
Add struct and type doc comments for extra::url::*

Updated doc comments further, following suggestions from huonw in PR
#10752.
Disallow duplicate bindings of struct fields

Closes #9725
Search for libfoo.a on windows as well as foo.lib

Turns out LLVM only builds libfoo.a libraries, so we're going to need this logic
to statically link librustc
Issue #9629 -- permit freezing `&mut` found within an `&` pointer
Register new snapshots
auto merge of #10747 : alexcrichton/rust/snapshots, r=cmr

This registers new snapshots after the landing of #10528, and then goes on to tweak the build process to build a monolithic `rustc` binary for use in future snapshots. This mainly involved dropping the dynamic dependency on `librustllvm`, so that's now built as a static library (with a dynamically generated rust file listing LLVM dependencies).

This currently doesn't actually make the snapshot any smaller (24MB => 23MB), but I noticed that the executable has 11MB of metadata so once progress is made on #10740 we should have a much smaller snapshot.

There's not really a super-compelling reason to distribute just a binary because we have all the infrastructure for dealing with a directory structure, but to me it seems "more correct" that a snapshot compiler is just a `rustc` binary.
Fix a bug in exporting trait implementations

I used the wrong condition where I was looking for "is this method public or is
this implementation a trait" rather than what was being checked.
Make trait lifetime parameters early bound in static fn type.  This is related
to #5121.

Fixes #10391.
Fix the comments for libsyntax::parse::parser::parse_sugary_call_expr

The comments on this function date back from when it was used for `for`
expressions in addition to `do` expressions.
Improve various Vim syntax highlighting things.

- Implement comment nesting (the implementation is quite ugly at present
  and is not quite correct; note the big comment in that area).

- Highlight invalid escape sequences as errors.

- Fix up various inconsistencies and incorrectnesses in number
  highlighting.

- Update prelude items (``std::io::{Buffer, Writer, Reader, Seek}``).

- Highlight the ``proc`` keyword.

- Remove %-formatting sequence highlighting (a relic of old formatting).

- Don't highlight TODO in strings (it's unconventional).
auto merge of #10752 : dhodder/rust/master, r=pcwalton
Don't infinitely recurse in a process test

Note entirely sure how this is passing at all today, but regardless this fixes
the problems seen in #10790
Move std::util::ignore to std::prelude::drop

It's a more fitting name for the most common use case of this function.
auto merge of #10785 : alexcrichton/rust/omg-i-hate-windows, r=pcwalton

Turns out LLVM only builds libfoo.a libraries, so we're going to need this logic
to statically link librustc
auto merge of #10776 : alexcrichton/rust/issue-9725, r=pcwalton

Closes #9725
auto merge of #10783 : sfackler/rust/drop, r=alexcrichton

It's a more fitting name for the most common use case of this function.