Consume once fns when calling them (#2549).
Permit moving out of captured upvars in once fns. Close #2549.
Add tests for once functions (#2549).
Hide the once-move-out privilege for stack fns behind '-Z once-fns'
Oops, hide 'unless once fn' error message hint behind -Z once-fns too.
rustpkg: Silence extra output from rustpkg tests

Closes #7250
testsuite: Add test cases, some xfailed

Closes #5060
Closes #4446
Closes #5192
mk: add mechanisms for triggering clean-llvm builds from commits
Add Float to llvm::type_to_str.
Add a depth counter to llvm::type_to_str to work around infinite llvm types.
Make default method handling not choke on self region params. Closes #7341.
Make calling methods parameterized on the trait work from default methods.

This is done by adding a new notion of "vtable_self".
We do not yet properly handle super traits.

Closes #7183.
Actually resolve trait bounds on impls. Closes #7266.
Rework vtable_res to not be flattened. It is now a list of the resolutions for each param.
Improve handling of trait bounds on a trait in default methods.

This is work on #7460.
It does not properly handle certain cross crate situations,
because we don't properly export vtable resolution information.
Drop an unused field from param_substs.
Drop the impl_id field from fn_ctxt.
Add tests for some default method things.
auto merge of #7471 : msullivan/rust/default-methods, r=graydon

This fixes a bunch of default method bugs and restructures how vtable resolutions are represented.

(It also adds a depth counter to llvm::type_to_str as a hacky work around for our circular llvm types. This is related in the sense that I needed to do it to make debug tracing not cause rustc to crash after running out of stack space.)
Rename #[non_sendable] to #[no_send]