Perform expansion before stripping/building a test harness.

This allows macros to create tests and benchmarks.
test: Add two tests for issue #6272.
Include static methods on traits in reexports.
Implement a new protocol for `for` loops that's much more easily composable
core: Use the new `for` protocol
std: Use the new `for` protocol
syntax: Use the new `for` protocol
rustc: Use the new `for` protocol
rustpkg: Use the new `for` protocol
Fix deriving(IterBytes) to use the new for-loop protocol
librustc: allow destructuring of structs with destructors if the pattern has no moves.

This check only works for `match`s, the checks (incorrectly) do not run for patterns in
`let`s.
Issue number on xfailed test
renamed vec::from_slice to vec::to_owned
Add some positive tests for dtor struct destructuring
renamed str::from_slice to str::to_owned
Fixes rusti crashes.

Don't pass the binary name to the LLVMRustExecuteJIT closure; doesn't
seem to be needed, anyhow.
Replace io::println by println as it is now included in prelude.rs
more back-ticks, less colons
Move flate from core to std
test: Use the new `for` protocol