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:
Add new function str.truncate()