Use `///` style doc-comments and add missing headings
xfail-fast run-pass/core-rt-smoke
auto merge of #6597 : bjz/rust/core-char, r=brson
auto merge of #6577 : brson/rust/io-upstream, r=pcwalton

r?

This is all of my scheduler work on #4419 from the last 3 weeks or so. I've had a few failed pull requests so far but I think the problems are ironed out.

* TCP
* The beginnings of runtime embedding APIs
* Porting various corners of core to be compatible with both schedulers
* libuv timer bindings
* Further refinement of I/O error handling, including a new, incomplete, `read_error` condition
* Incomplete refactoring to make tasks work without coroutines and user-space scheduling
* Implementations of Reader/Writer extension methods
* Implementations of the most important part of core::comm

I'm particularly happy with how easy the [comm types on top of the scheduler](https://github.com/brson/rust/blob/io-upstream/src/libcore/rt/comm.rs). Note that these implementations do not use pipes. If anything here needs careful review though it's this code.

This branch passes 95% of the run-pass tests (with `TESTARGS=--newrt`)

In the next week I'll probably spend some time adding preliminary multithreading and seeing how close we are to removing the old runtime.
fix stage0 compile
minor automated whitespace fixes
auto merge of #6589 : thestinger/rust/iterator, r=thestinger
Add Ptr::to_option method
reduce the usage of explicit version markers
auto merge of #6606 : thestinger/rust/vers, r=brson

I don't see a reason to encode this information in all the `extern mod` statements, it's not a precise enough version to actually provide any sort of robustness.
auto merge of #6603 : thestinger/rust/whitespace, r=thestinger
Correct tuple Ord impl, add Total{Eq,Ord} impls and add some tests.
auto merge of #6595 : bjz/rust/core-tuple, r=thestinger
Use assert_eq! rather than assert! where possible
auto merge of #6601 : cmr/rust/assert_eq, r=Aatch
auto merge of #6106 : thestinger/rust/iter, r=bstrie

I don't have a strong opinion on the function vs. method, but there's no point in having both. I'd like to make a `repeat` adaptor like Python/Haskell for turning a value into an infinite stream of the value, so this has to at least be renamed.
Add additional documentation in core::io.

Added docs for stdout, stderr, print, and println.
Add docs for stdin in core::io.
Added note about prelude inclusion.
Elaborate a bit in the Reader docs regarding stream position.

Had a conversation with @cmr in IRC about some places that these
docs were confusing. The functions that advance the stream now say so.

In addition, I think that calling out the similarities to familliar C
functions should help people coming from other languages.