mark win32 binaries as large address aware

By default, 32-bit Windows executables are restricted to 2GiB of address
space even when running on 64-bit Windows when 4GiB is available.

Closes #17043
auto merge of #16999 : brson/rust/fannkuch, r=alexcrichton

From the discussion on reddit:
http://www.reddit.com/r/rust/comments/2fenlg/benchmark_improvement_fannkuchredux/

This adds two variants: the primary, that uses an unsafe block, and a secondary
that is completely safe.

The one with the unsafe block matches clang's performance and beats gcc's.
auto merge of #17016 : steveklabnik/rust/fix_diagnostic_codes, r=huonw

Fixes #16449.
auto merge of #17018 : steveklabnik/rust/fix_projects_in_guide, r=huonw

Thanks @dherman.
auto merge of #17019 : steveklabnik/rust/remove_compromise, r=thestinger

@dherman doesn't like it :smile:
Add ICE regression test for issue #16218.

This code used to produce an ICE on the definition of trait Bar
with the following message:

Type parameter out of range when substituting in region 'a (root
type=fn(Self) -> 'astr) (space=FnSpace, index=0)

Closes #16218.
Add regression test for issue #10766

This test verifies that casting from the same lifetime on a value
to the same lifetime on a trait succeeds. Closes #10766.
auto merge of #17032 : jamesluke/rust/master, r=alexcrichton

"extern create" -> "extern crate"
Fix vector/array/slice terminology in manual.

Fixes #16015.
Changed addl_lib_search_paths from HashSet to Vec

This makes the extra library paths given to the gcc linker come in
the same order as the -L options on the rustc command line.
Added test for link path ordering
Register snapshots.

Closes #16880.
auto merge of #17005 : bjz/rust/bit-count, r=thestinger

Fixes rust-lang/rfcs#224
auto merge of #17034 : retep998/rust/glob-fix, r=alexcrichton

Fixes #15279
Based on #13338
Fix deprecate warning "extern crate ... as ..."

Its arguments were inverted.
Relicense shootout-reverse-complement.rs to the shootout license.

Everyone agreed.  Fix #17065
auto merge of #17015 : seb-m/rust/fix-extern-crate-as, r=sfackler

Its arguments were inverted.

For instance it displayed this message:

```
warning: this extern crate syntax is deprecated. Use: extern create "foobar" as foo;
```

Instead of:

```
warning: this extern crate syntax is deprecated. Use: extern create "foo" as foobar;
```
Relicense shootout-nbody.rs to the shootout license

Everyone agreed. fix #17073
Flip arguments to `std::iter::iterate`.

Breaks `iterate(f, seed)`, use `iterate(seed, f)` instead.
The convention is to have the closure last.

Closes #17066.

[breaking-change]
enable jemalloc debugging in unoptimized builds

The performance hit from these checks is significant, but unoptimized
builds are already incredibly slow. Enabling these checks results in
better test coverage since there are bots doing unoptimized builds, and
the cost is relatively small in the context of an unoptimized build.
This also allows using `JEMALLOC_FLAGS` to override the default
configure flags.