add a TotalOrd trait
treemap: reimplement using TotalOrd
auto merge of #5196 : thestinger/rust/ord, r=catamorphism

This allows `TreeMap`/`TreeSet` to fully express their requirements and reduces the comparisons from ~1.5 per level to 1 which really helps for string keys.

I also added `ReverseIter` to the prelude exports because I forgot when I originally added it.