mk: target triple rename arm-unknown-android->arm-linux-androideabi
Represent enums with regular structs; no more alignment-breaking casts.
Make &self permit explicit lifetimes, but don't really use them
(this will be needed for snapshotting at some point).
Allow constant expressions in [Type * n].
Now actually allow using constants in those constant expressions for [T * n].
Allow expressions that are not just a single value for repeated fixed length vector syntax.
Fix pretty printer for fixed length vectors.
Add tests for const exprs in fixed vec length type and vec repeat.
Enable arm error handling abi
Enable arm error handling abi 2
Use NDK for building android target objects
Rewrite arm/ccall.s
Make driver::driver::parse_cfgspecs parse any variety of meta_item

All current meta items types (word, name-value, list) are now
properly parsed by rustc --cfg command line. Fixes #2399

Signed-off-by: Luca Bruno <lucab@debian.org>
auto merge of #5112 : luqmana/rust/3469, r=graydon

So this is a partial fix for #3469. Partial because it only works for simple constant expressions like `32/2` and `2+2` and not for any actual constants.

For example:
```
const FOO: uint = 2+2;
let v: [int * FOO];
```

results in:
```
error: expected constant expr for vector length: Non-constant path in constant expr
```

This seems to be because at the point of error (`typeck::astconv`) the def_map doesn't contain the constant and thus it can't lookup the actual expression (`2+2` in this case).

So, feedback on what I have so far and suggestions for how to address the constant issue?
auto merge of #5433 : lucab/rust/lucab/cfgspec, r=graydon

All current meta items types (word, name-value, list) are now
properly parsed by rustc --cfg command line. Fixes #2399
Allow custom messages on assert statements
auto merge of #5356 : jld/rust/enum-less-magic, r=graydon

Fixes #1645.
auto merge of #5426 : nikomatsakis/rust/issue-4846-lifetimes-in-expl-self, r=pcwalton

(this will be needed for snapshotting at some point)

r? @pcwalton
librustc: adjust logic for cfg attribute and add not predicate.
Tests for cfg attribute.