extra: Simplify Eq/Ord in treemap

Write the Eq and Ord impls for TreeMap in a more straightforward way
using iterator::Zip
extra: External iterators for TreeSet set operations

Write external iterators for Difference, Sym. Difference, Intersection
and Union set operations.

These iterators are generic insofar that they could work on any ordered
sequence iterators, even though they are type specialized to the
TreeSetIterator in this case.

Looking at the `check` function in the treeset tests, rustc seems
unwilling to compile a function resembling::

    fn check<'a, T: Iterator<&'a int>>(... )

so the tests for these iterators are still running the legacy loop
protocol.
extra: Implement .rev_iter() in treemap

Implement reverse iterators for TreeMap and TreeSet, that produce the
keys in backward order.
extra: Remove all each_* methods in treemap

.each_key(), .each_value() and the other methods are replaced by .iter()
and .rev_iter(), and restrictions of those iterators.