mk: target triple rename arm-unknown-android->arm-linux-androideabi
Represent enums with regular structs; no more alignment-breaking casts.
rustdoc: Document explicit self in methods. Closes #5254
core: Add to_bytes method to StrSlice trait
MutableIter impl for Option + use it in treemap
Fix an android compilation fail
Normalize target triple so that llvm can recognize target os correctly
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)
auto merge of #5357 : jbclements/rust/add-nonempty-span-encoding, r=jbclements

r? @nikomatsakis 
r? @erickt 

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.
impl Clone for ~T, ~[T], ~str
Clonify some of run-pass
auto merge of #5391 : brson/rust/to-bytes, r=graydon

r?

I want to use this function as a method. There's probably a better way to design this but the existing `ToBytes` trait is not what I am looking for (it has a parameter to indicate the byte order).
auto merge of #5396 : ILyoan/rust/fix_rt_tls, r=graydon

Add a conditional compile option for android
add constructor to TrieSet (was missing)
core: fix trie chunk function
auto merge of #5400 : thestinger/rust/misc, r=brson