Make json::to_xxx(&Json) fns Json::to_xxx(&self)

to_str, to_pretty_str, to_writer, and to_pretty_writer were at the top
level of extra::json, this moves them into an impl for Json to match
with what's been done for the rest of libextra and libstd.
Use the proper monomorphized ty::t for llvm alias hints. Closes #7260.
Rename {Reader,Writer}ByteConversions methods

The method names in std::rt::io::extensions::WriterByteConversions are
the same as those in std::io::WriterUtils and a resolve error causes
rustc to fail after trying to find an impl of io::Writer instead of
trying to look for rt::io::Writer as well.

Same goes for ReaderByteConversions.
Fix two small warnings
rt: Remove last use of C++ exchange alloc
rt: Remove rust_exchange_alloc
rt: Remove indexed_list
Fix some vector function failure tests. Closes #8698
test: add support for sharding testsuite by passing --test-shard=a.b
Talk about trait bounds in the tutorial.
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
Document the task watching / exit code propagation implementation.
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