add a trait for mutable iterators
hide the linkhack module in the docs
rm FIXME from use of #[doc(hidden)] on pub mod
rustdoc: Document explicit self in methods. Closes #5254
rustdoc: Filter out private definitions. Closes #3538
core: Add to_bytes method to StrSlice trait
auto merge of #5369 : thestinger/rust/iter, r=z0w0

This can eventually be implemented on other sequence containers like `deque` (it's missing `each` too at the moment).
auto merge of #5371 : thestinger/rust/hidden, r=pcwalton
MutableIter impl for Option + use it in treemap
auto merge of #5375 : z0w0/rust/rustdoc-private-hide, r=thestinger
Fix an android compilation fail
Normalize target triple so that llvm can recognize target os correctly
add nonempty encoding for spans

Before this change, encoding an object containing a codemap::span
using the JSON encodeng produced invalid JSON, for instance:
[{"span":,"global":false,"idents":["abc"]}]
Since the decoder for codemap::span's ignores its argument, I
conjecture that this will not damage decoding, and should improve
it for many decoders.
Test case fixup (old one tested the old bad behavior).
Update test case to conform to new restrictions on casting
auto merge of #5395 : thestinger/rust/iter, r=pcwalton
deque: add documentation
treemap: rm old FIXME
treemap: use each_mut instead of mutate
auto merge of #5354 : ILyoan/rust/normalize_triple, r=graydon

LLVM could not recognize target-os when target-triple was given as like 'arm-linux-androideabi'.
Normalizing target-triple fill the missing elements. 
In the case of 'arm-linux-androideabi', nomalized target-triple will be "arm-unknown-linux-androideabi" and this let llvm recognize the triple correctly. (arch: arm, vendor: unknown, os: linux, environment: android)