Refactor libsyntax Visitor impls to use default methods.
syntax: Remove use of Either in parse.rs

The arg or capture type alias was actually never used for the capture
case, so the code is simplified with `Either<arg, ()>` replaced by `arg`
extra::test: Use Result instead of Either.

OptRes was combining a successful value with an error message, which
fits the Result type perfectly.
std::logging: Use a more specific enum than Either
extra::workcache: Remodel the (internal) struct Work

Using an enum with two cases for `Work` reveals simpler code than the
previous `Option<Either<X, Y>>` representation.
Add Orderable bound to num::Primitive
Pass a more proper span to the syntax expanders

Closes #5794
Get rid of unused SimpleVisitor stuff.
std::rt: Add a standalone sleep function.
auto merge of #9180 : blake2-ppc/rust/reduce-either, r=catamorphism

Work a bit towards #9157 "Remove Either". These instances don't need to use Either and are better expressed in other ways (removing allocations and simplifying types).
auto merge of #9181 : lkuper/rust/libsyntax-default-methods-refactor, r=alexcrichton

I'm getting the three `make check` failures mentioned in issue #9127, which I also get building master.
auto merge of #9182 : bjz/rust/master, r=brson

Somehow this was missed!

cc #4819
auto merge of #9183 : alexcrichton/rust/issue-5794, r=catamorphism

Closes #5794
iter: fix range docstrings
Add SharedPort wrapper around rt::comm::SharedPort

SharedPort implementation was missing in std::comm. Since this module
also wraps SharedChan, it makes sense to have SharedPort defined there
as well.
iter: replace comment with a docstring
iter: move Counter impl to the proper place
auto merge of #9191 : huonw/rust/are-you-tired, r=cmr

Allows `std::rt::io::timer::sleep(1000)` rather than `std::rt::io::timer::Timer::new().unwrap().sleep(1000)`.
auto merge of #9198 : FlaPer87/rust/shared-port, r=cmr

SharedPort implementation was missing in std::comm. Since this module
also wraps SharedChan, it makes sense to have SharedPort defined there
as well.
iter: add `RangeStep` and `RangeStepInclusive`