Document std::ops.

Added an overview with a 'real' example, as well as toy implementations of all of
the traits.

Closes #9356.
Ignore tests on Android correctly
auto merge of #9698 : sanxiyn/rust/android, r=huonw
Rewrite lint passes with less visitor cruft

This purges about 500 lines of visitor cruft from lint passes. All lints are
handled in a much more sane way at this point. The other huge bonus of this
commit is that there are no more @-boxes in the lint passes, fixing the 500MB
memory regression seen when the lint passes were refactored.

Closes #8589
auto merge of #9686 : alexcrichton/rust/lint, r=thestinger

This purges about 500 lines of visitor cruft from lint passes. All lints are
handled in a much more sane way at this point. The other huge bonus of this
commit is that there are no more @-boxes in the lint passes, fixing the 500MB
memory regression seen when the lint passes were refactored.

Closes #8589
Update std::ops docs as per feedback

from @chris-morgan
auto merge of #9522 : steveklabnik/rust/doc_std_opts, r=alexcrichton

Added an overview with a 'real' example, as well as toy implementations of all of
the traits.

Closes #9356.
extra: remove unnecessary second level functions

do_strptime() and do_strftime()
auto merge of #9705 : luisbg/rust/strptime, r=alexcrichton

do_strptime() and do_strftime()

I don't see any reason why src/libextra/time.rs has two functions that just call a very similar function, which only use is to be called by them.
strftime() just calls do_strftime()
strptime() just calls do_strptime()
and the do_functions aren't called by anyone else.
the parameters and return types are exactly the same in both levels, so I just have removed the second layer.

Unless there is a need for that second level.