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.
Better error message for certain classes of unresolved imports
Tweak error message

Recommendation of @kud1ing
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
auto merge of #6339 : alexcrichton/rust/unsafe-cvec, r=catamorphism

As noted by @jwise [here](https://github.com/mozilla/rust/commit/52445129fdb4ee847332acbf516ced8f73b7990a#commitcomment-3172192), it's probably a good idea to keep these unsafe.

The lint check won't warn about these because it ignore `unsafe fn` declarations.
auto merge of #6347 : cmr/rust/unknown_module_resolve_error, r=catamorphism

This improves error reporting for the following class of imports:

```rust
use foo::bar;
```

Where foo, the topmost module, is unresolved. It now results in:

```text
/tmp/foo.rs:1:4: 1:7 error: unresolved import.  perhapsyou forgot an 'extern mod foo'?
/tmp/foo.rs:1 use foo::bar;
                  ^~~
/tmp/foo.rs:1:4: 1:12 error: failed to resolve import: foo::bar
/tmp/foo.rs:1 use foo::bar;
                  ^~~~~~~~
error: failed to resolve imports
error: aborting due to 3 previous errors
```

This is the first of a series of changes I plan on making to unresolved name error messages.
A test file is fixed
auto merge of #6356 : dotdash/rust/strinterner, r=pcwalton

&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.
auto merge of #6329 : sonwow/rust/issue-6306, r=ILyoan

Fix for #6306
auto merge of #6358 : crabtw/rust/mips-segstk, r=brson

I changed ```RED_ZONE_SIZE``` to ```RZ_MAC_32``` because of stack canary failure.
Here is a LLVM patch for MIPS segmented stacks.
http://people.cs.nctu.edu.tw/~jyyou/rust/mips-segstk.patch

Current test results
```
failures:
    rand::tests::test_rng_seeded_custom_seed2
    run::tests::test_forced_destroy_actually_kills
    run::tests::test_unforced_destroy_actually_kills
    time::tests::run_tests
    uv_ll::test::test_uv_ll_struct_size_addrinfo
    uv_ll::test::test_uv_ll_struct_size_uv_timer_t

segfaults:
    rt::io::option::test::test_option_writer_error
    rt::local_services::test::unwind
    rt::sched::test_swap_tasks_then
    stackwalk::test_simple
    stackwalk::test_simple_deep
```
auto merge of #6366 : catamorphism/rust/issue-3920, r=catamorphism

r? @nikomatsakis as per #3920
auto merge of #6380 : pcwalton/rust/core-text-ice, r=pcwalton