add a RandomAccessIterator trait
expand on double-ended iterators in the tutorial
document random-access iterators
Change 'print(fmt!(...))' to printf!/printfln! in src/lib*
Change 'print(fmt!(...))' to printf!/printfln! in src/test/
std:rt: args module is not used by win/mac. #7951
Disallow non-comma-delimited arguments to fmt! and bytes!
Closes #4982.
fix fmt! usage
Fix a crash when transmuting non-immediate to immediate types

The code to build the transmute intrinsic currently makes the invalid
assumption that if the in-type is non-immediate, the out-type is
non-immediate as well. But this is wrong, for example when transmuting
[int, ..1] to int. So we need to handle this fourth case as well.

Fixes #7988
rustc: Remove some dead code from method resolution
ToStr for HashMap does not need value to implement Eq or Hash
fix compilation on macos/windows
rc: Use ~T for allocation

Simplify Rc<T>/RcMut<T> by using ~T when allocating a reference counted
box.
auto merge of #7982 : thestinger/rust/iterator, r=thestinger

f0f4dcc r=huonw
25e9c4c r=graydon
a87c2d1 r=brson
16f369d r=cmr
9f05cc8 r=bstrie
e858055 r=huonw
5d80938 r=thestinger
05d03e7 r=cmr
8f86fa3 r=thestinger