fix mips stack alignment
auto merge of #6650 : crabtw/rust/mips-rt, r=sanxiyn

Results of libcore and libstd tests

```
failures:
    rand::tests::test_rng_seeded_custom_seed2
    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:
    stackwalk::test_simple
    stackwalk::test_simple_deep
```
Correct span for expr_vec
Correct span for unused_import
auto merge of #6654 : sanxiyn/rust/accurate-span-2, r=bstrie
syntax/ext: remove the ~str dependence of the deriving code.
Remove unnecessary allocations flagged by lint from rustdoc
Remove unnecessary allocations flagged by lint from rustpkg
syntax/ext: Remove the trait-object indirection of the ext_ctxt object.
syntax/ext: modernise ext_ctxt to be CamelCase and use new.
syntax/ext: collect the ast building traits into a single trait.
Remove unnecessary allocations flagged by lint from fuzzer
syntax/ext: migrate build.rs functions to AstBuilder methods.
syntax/ext: convert all AstBuilder methods to a uniform syntax.
Take string slices
auto merge of #6611 : huonw/rust/syntax-ext-no-dup, r=jbclements

Fixes https://github.com/mozilla/rust/issues/6578 by merging the 3 different ways to build an AST into a single `AstBuilder` trait, creating a more uniform and briefer interface.

Also, converts the `ext_ctxt` trait-object to be a plain struct, as well as renaming it to `ExtCtxt`.

Seems to make expansion slightly faster for the normal case (e.g. `libcore` and `libstd`), but slower for `librustc` (slightly) and `libsyntax` (0.3s -> 0.8s! I'm investigating this, but I'd prefer this patch to land relatively quickly.).

`git blame` suggests maybe @graydon or @erickt are familiar with this area of the code. r?
Use static strings
auto merge of #6657 : sanxiyn/rust/allocation, r=thestinger
auto merge of #6658 : sanxiyn/rust/static-string-2, r=thestinger