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
libsyntax: Convert ast::attribute_ to store a @meta_item
libsyntax: add explicit modes where required to copy strs/vecs
libsyntax: minor cleanup
libsyntax: convert visit to pass ty_params by reference
libsyntax: progress on making syntax::visit vecs_implicitly_copyable-free
libsyntax: make lexer vecs_implicitly_copyable-free
libsyntax: fix the span in parse_bottom_expr's INTERPOLATED handler
libsyntax: is_keyword should take a &~str
libsyntax: change eat to take a &token
libsyntax: change flip_delimiter to take a &token::Token
libsyntax: change expect to take &token::Token
libsyntax: minor cleanup
libsyntax: change token_is_{word,keyword} to take &Token
libsyntax: add some explicit copies
libsyntax: change parse_trait_ref_list to take a &Token
libsyntax: change attr::parse_seq_* to take &Token
libsyntax: change parse_matcher_subseq to take &Token