mk: Split target triples into bulid triple + host triples + target triples

For cross compiling to targets that don't want to build a compiler
mk: Refactor platform.mk a bit
submodule: libuv for android
mk: rewrite make files
mk: mingw32 flags added
mk: mingw32 fix
mk: Cross-compile fixes
Allow constant c-like enum to integral/float cast
mk: cleanup - lib and executable suffix handling
add an initial radix trie implementation
libcore: Add read_until to ReaderUtil.
replace option::iter with a BaseIter impl
etc: Suppress another Valgrind issue. rs=burningtree
libsyntax: add &self to parser methods
libsyntax: add &self to extensions
libsyntax: deny deprecated_self in libsyntax
auto merge of #5207 : erickt/rust/libsyntax-deprecated-self, r=brson

This adds an explicit `&self` to each method in libsyntax, and sets the `#[deny(deprecated_self)]` in `syntax.rc`.
Construct const fns based on the type, not the definition.

Otherwise we can add a null environment when we shouldn't.

Fixes #5210.
Assert that constants are translated with the correct size.
Add a test case for const fn sizing, just to be safe.