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
Various typos corrected
Add current year in the copyright header
mk: rewrite make files
mk: mingw32 flags added
mk: mingw32 fix
mk: Cross-compile fixes
Allow constant c-like enum to integral/float cast
Better highlight for repeat count error

Before:
````
test.rs:3:21: 3:30 error: expected constant integer for repeat count but found variable
test.rs:3             let a = ~[0, ..n]; //~ ERROR expected constant integer for repeat count but found variable
                              ^~~~~~~~~
````

After:
````
test.rs:3:27: 3:28 error: expected constant integer for repeat count but found variable
test.rs:3             let a = ~[0, ..n]; //~ ERROR expected constant integer for repeat count but found variable
                                     ^
````
make LinearMap fields private

Closes #4764
mk: cleanup - lib and executable suffix handling
add an initial radix trie implementation
inline the implementation of TotalOrd for integers
auto merge of #5206 : thestinger/rust/cmp, r=brson

minor little performance issue - the vector and string implementations of TotalOrd turn out badly without explicitly inlining this
auto merge of #5198 : youknowone/rust/repeat-count, r=brson

Before:
````
test.rs:3:21: 3:30 error: expected constant integer for repeat count but found variable
test.rs:3             let a = ~[0, ..n]; //~ ERROR expected constant integer for repeat count but found variable
                              ^~~~~~~~~
````

After:
````
test.rs:3:27: 3:28 error: expected constant integer for repeat count but found variable
test.rs:3             let a = ~[0, ..n]; //~ ERROR expected constant integer for repeat count but found variable
                                     ^
````
auto merge of #5199 : thestinger/rust/hashmap, r=brson

Closes #4764
librustc: Forbid chained imports and fix the logic for one-level renaming imports
librustc: Remove `fn@`, `fn~`, and `fn&` from librustc. rs=defun