Perform expansion before stripping/building a test harness.

This allows macros to create tests and benchmarks.
improve MIPS backend and implement segmented stacks
Mark c_vec functions as unsafe again
Use a specialized string interner to reduce the need for owned strings

&str can be turned into @~str on demand, using to_owned(), so for
strings, we can create a specialized interner that accepts &str for
intern() and find() but stores and returns @~str.
testsuite: Add two test cases (one xfailed)
Better error message for certain classes of unresolved imports
Tweak error message

Recommendation of @kud1ing
test: Add two tests for issue #6272.
core: Make intrinsics::init unsafe

as per #3920
core: Make intrinsics::forget unsafe, too
testsuite: Test that init and forget are both unsafe
compile-fail test for new unresolved import error
fix formating and tests
librustc: Fix ICE in core-text resulting from dynamic borrowing. rs=blocking-servo
Move core::task::local_data to core::local_data
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