Define rustc's host triple at compile time

This way a cross-compiled rustc's answer to host_triple() is correct. The return
value of host_triple() reflects the actual host triple that the compiler was
build for, not the triple the compiler is being built on
Un-ignore rusti/rustpkg tests on i686
Fix vec::mut_slice
Replaced calls to external fmin/fmax by a Rust implementation.
auto merge of #6800 : june0cho/rust/issue5984, r=pcwalton

Fix #5984.
Resolve the problem which exists in #6780.
Changed to a more efficient implementation.
auto merge of #6733 : alexcrichton/rust/issue-2400, r=brson

Most of the relevant information can be found in the commit messages.

r? @brson - I just wanted to make sure the make changes aren't completely bogus

This would close #2400, #6517, and #6489 (although a run through incoming-full on linux would have to confirm the latter two)
auto merge of #6803 : Thiez/rust/native_fmax_fmin, r=brson

Calls to the libc versions of fmin and fmax were relatively slow (perhaps because they could not be inlined?). This pull request provides f32 and f64 with fmin and fmax written in Rust, and shows a significant speed increase on my system; I used https://github.com/thiez/rustray as my benchmark, with --opt-level 3 it brings the ray-tracing time down from 10.8 seconds to about 9.2, which seemed significant to me.

r?
Implement new method HashMap.insert_or_modify_with()

std::hashmap::HashMap.insert_or_modify_with() is basically the opposite
of find_or_insert_with(). It inserts a given key-value pair if the key
does not already exist, or replaces the existing value with the output
of the passed function if it does.