Enable arm error handling abi
Enable arm error handling abi 2
Use NDK for building android target objects
Rewrite arm/ccall.s
Refactor trans_call to separate out the translation of the arguments, environment, and return pointer
librustc: Enforce privacy for static methods.

This starts moving a bunch of privacy checks into the privacy
checking phase and out of resolve.
libsyntax: Accept `static` instead of `const` for globals
libsyntax: Accept the new `[T, ..N]` style for vec.
syntax: move ext/deriving.rs to ext/deriving/mod.rs
syntax: split deriving module into submodules for each trait
libsyntax: Forbid `use` (and most other things) within `extern { ... }` blocks
core: rename vec::rev_each{,i} to vec::each{,i}_reverse

I'm making this change because the _reverse suffix is more commonly
used in libcore/libstd.
libcore: Make a couple of constructors public. rs=testfixing
syntax: Removing some bad copies
test: Fix test. rs=test
auto merge of #5442 : pcwalton/rust/extern-block-restriction, r=pcwalton

r? @graydon
rustc: Remove some bad copies throughout
auto merge of #5432 : ILyoan/rust/arm_use_ndk_rebase, r=sanxiyn

Partial Fix for #5265

- Enabling LLVM ARM ehabi option.
- Add ARM debug information manually for ccall.s
- Compile object file using Android-NDK.

Current LLVM trunk version can generate ARM debug information for assembly files but it is incomplete for object files. Unwinding on ARM can be done with LLVM trunk(the LLVM submodule of rust has problem on generating ARM debug information). See #5368

The Android-NDK detour(0f89eab) can be removed after LLVM has complete feature of generating ARM debug information for object file.
auto merge of #5443 : alexcrichton/rust/less-bad-copy, r=catamorphism

Removes a lot of instances of `/*bad*/ copy` throughout libsyntax/librustc. On the plus side, this shaves about 2s off of the runtime when compiling `librustc` with optimizations.

Ideally I would have run a profiler to figure out which copies are the most critical to remove, but in reality there was a liberal amount of `git grep`s along with some spot checking and removing the easy ones.
Refactor the self-info so that the def-id is carried in ty_self()
and the fn_ctxt doesn't need any self_info field at all.

Step towards fixing `fn(&self)` (cc #4846) to have a distinct
lifetime.