Fix two small warnings
rt: Remove last use of C++ exchange alloc
rt: Remove rust_exchange_alloc
rt: Remove indexed_list
fix performance regression from invalid IR

Monomorphize's normalization results in a 2% decrease in non-optimized
code size for libstd, so there's a negligible cost to removing it. This
also fixes several visit glue bugs because normalize wasn't considering
the differences in visit glue between types.

Closes #8720
auto merge of #8724 : thestinger/rust/fix-transmute, r=graydon

Monomorphize's normalization results in a 2% decrease in non-optimized
code size for libstd, so there's a negligible cost to removing it. This
also fixes several visit glue bugs because normalize wasn't considering
the differences in visit glue between types.

Closes #8720
rt: Remove timer
rt: Memory regions are never synchronized now
rt: Remove sync.h
rt: Remove exit_status helpers
rt: Move some test functions to rust_test_helpers
rt: Remove old precise GC code
rt: Remove rust_util.cpp
rt: Remove rust_abi
auto merge of #8705 : brson/rust/lesscxx, r=graydon
auto merge of #8716 : andrew-d/rust/andrew-fix-warnings, r=alexcrichton

Small, but whatever :8ball:
Upgrade libuv to the current master + our patches

There were two main differences with the old libuv and the master version:

1. The uv_last_error function is now gone. The error code returned by each
   function is the "last error" so now a UvError is just a wrapper around a
   c_int.
2. The repo no longer includes a makefile, and the build system has change.
   According to the build directions on joyent/libuv, this now downloads a `gyp`
   program into the `libuv/build` directory and builds using that. This
   shouldn't add any dependences on autotools or anything like that.

Closes #8407
Closes #6567
Closes #6315
Implement process bindings to libuv

Closes #6436
Fix the libuv build system

* Specify to gyp the target architecture and output directories
* Generate Makefiles into rt/ instead of src/