Refactored make_absolute into functionality on the Path
Improved windows path handling support
Added is_restricted() to path
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
Fix vector syntax in error messages
Consolidate codes dealing with LLVM struct type
remove oldsmallintmap

Closes #4738
libcore: remove default to_str implementations for pointer types

These couldn't be overridden and so ended up being quite restrictive. This has
the side effect of changing the stringification of ~vecs, but nothing in
relied on this. Closes #4869.
Fix slice printing
Report error for non constant vector repeat count

Fix issue #3645
submodule: libuv for android
Emacs: Update emacs mode to be more similar to the vim mode.

Copy the keyword list, and add `self` so that it is somewhat highlighted
(being liberal with the correct categories).
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
Fix typo in grammar: underscore, not minus, can appear amongst hex digits.