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