fix arm stack alignment
auto merge of #6667 : crabtw/rust/arm-rt, r=brson

This fixes segmentation fault of new rt tests.
For example
```
use core::rt::test::*;
use core::rt::comm::*;
use core::cell::Cell;

fn main() {
    do run_in_newsched_task {
        let (port, chan) = oneshot::<~int>();
        let port_cell = Cell(port);
        do spawntask_immediately {
            assert!(port_cell.take().recv() == ~10);
        }
        chan.send(~10);
    }
}
```
"Type :help for help", similar to ghci
auto merge of #6671 : kud1ing/rust/patch-1, r=z0w0
librustc: Disallow `use` from reaching into impls or traits.

This can perhaps be restored in the future. For now this is a precursor to
making typedefs work as expected.
librustc: Disable borrow check debugging even when rustc is compiled with -O0.

This improves -O0 compile times dramatically.
test: Fix tests.
librustc: Make `~Trait` two words by storing the type descriptor in the vtable.
librustc: Fix privacy checking for cross-crate variants
libstd: Rename libcore to libstd and libstd to libextra; update makefiles.

This only changes the directory names; it does not change the "real"
metadata names.
librustc: Rename core injection to std injection
libextra: Rename the actual metadata names of libcore to libstd and libstd to libextra
librustc: Change `std` to `extra` throughout libsyntax and librustc
librustc: Make `std_inject` inject the name `std`, not `core`
libfuzzer: Rename `std` to `extra`.
librustdoc: Rename `std` to `extra`.
fuzzer: Change `core` to `std` in the fuzzer
syntax: Change syntax extensions to expand to `std::foo` instead of `core::foo`
test: Update tests to use the new syntax.
test: Update tests and import the prelude in some more places.