native: Always open a file with Open/Write modes

Previously, windows was using the CREATE_NEW flag which fails if the file
previously existed, which differed from the unix semantics. This alters the
opening to use the OPEN_ALWAYS flag to mirror the unix semantics.

Closes #13861
auto merge of #13864 : adrientetar/rust/fix-it-some-more, r=alexcrichton

Two selector fixes for rustdoc:

- links colored in blue (#13807) was also affecting headers, which are anchored to their respective ids
- the header unstyling from #13776 was being applied to all headers also

Additionally, remove a stray title in the documentation. This makes the crate title of prelude appear as header instead of an inline paragraph of text (all others work normally and do not have that header tag).

The design is unchanged from my previous template (e.g. [here](http://adrientetar.legtux.org/cached/rust-docs/struct.CChars.htm)), however it is now properly applied.  
The last fix remaining is to enable webfonts service from `static.rust-lang.org`, this is #13593.

r? @alexcrichton, @brson
auto merge of #13648 : gereeter/rust/removed-rev, r=alexcrichton

In the process, `Splits` got changed to be more like `CharSplits` in `str` to present the DEI interface.

Note that `treemap` still has a `rev_iter` function because it seems like it would be a significant interface change to expose a DEI - the iterator would have to gain an extra pointer, the completion checks would be more complicated, and it isn't easy to check that such an implementation is correct due to the use of unsafety to subvert the aliasing properties of `&mut`.

This fixes #9391.
Allow manual implementations of built-in traits

[RFC #3]

cc #13231
librustc: Remove `~"string"` and `&"string"` from the language
Address nits from @pnkfelix
Merge pull request #1 from pnkfelix/clarify-omit-unit-vs-inference

Suggested revisions to PR 13676.
rustc: Fix def ids of xcrate-reexported items

This was just a typo in the decoder using the source crate's number rather than
the destination crate's number of a reexport.

Closes #13872
Add serialization support for StrBuf

- implement Encodable and Decodable for StrBuf
- implement to_json for StrBuf
auto merge of #13873 : alexcrichton/rust/issue-13872, r=Aatch

This was just a typo in the decoder using the source crate's number rather than
the destination crate's number of a reexport.

Closes #13872
rustdoc tutorial: grammar change in list comments
auto merge of #13724 : nikomatsakis/rust/expr-use-visitor, r=pnkfelix

Pre-step towards issue #12624 and others: Introduce ExprUseVisitor, remove the
moves computation. ExprUseVisitor is a visitor that walks the AST for a
function and calls a delegate to inform it where borrows, copies, and moves
occur.

In this patch, I rewrite the gather_loans visitor to use ExprUseVisitor, but in
future patches, I think we could rewrite regionck, check_loans, and possibly
other passes to use it as well. This would refactor the repeated code between
those places that tries to determine where copies/moves/etc occur.

r? @alexcrichton
Fixed outdated note in the tutorial
auto merge of #13875 : hjr3/rust/serialize-strbuf, r=alexcrichton

- implement Encodable and Decodable for StrBuf
- implement to_json for StrBuf
Add more comprehensive unit tests for SIMD binops
BigUint always use u64 as the internal machine unsigned integer

This change allow a speedup of ~1.5 on shootout-pidigits on a i32
system.  `DoubleBigDigit` is used to abstract the internal
unsigned integer used in computation to simplity future
architecture specialization.

`BigDigit::from_uint` and `BigDigit::to_uint` become
`BigDigit::from_doublebigdigit` and `BigDigit::to_doublebigdigit`.

[breaking-change]
auto merge of #13878 : brutal-chaos/rust/tutorial_grammar, r=alexcrichton
auto merge of #13881 : aochagavia/rust/pr, r=alexcrichton
Allow built-in traits to be derived

[RFC #3]

cc #13231
remove leftover obsolete string literals