std: Remove io::io_error

* All I/O now returns IoResult<T> = Result<T, IoError>
* All formatting traits now return fmt::Result = IoResult<()>
* The if_ok!() macro was added to libstd
extra: Remove io_error usage
syntax: Remove io_error usage
rustc: Remove io_error usage
compiletest: Remove io_error usage
glob: Remove io_error usage
green: Remove io_error usage
native: Remove io_error usage
rustuv: Remove io_error usage
rustpkg: Remove io_error usage
rustdoc: Remove io_error usage
rpass: Remove io_error usage
std: Fix tests with io_error usage
extra: Fix tests with io_error usage
native: Require all results are used and fix fallout
rustuv: Require all results are used and fix fallout
syntax: Remove usage of io_error in tests
rustpkg: Remove usage of io_error in tests
std: Fixing all documentation

* Stop referencing io_error
* Start changing "Failure" sections to "Error" sections
* Update all doc examples to work.
auto merge of #11946 : alexcrichton/rust/no-io-error, r=brson

Turns out this was a little more far-reaching than I thought it was.

The first commit is the crux of this stack of commits. The `io::io_error` condition is completely removed and the `read` and `write` methods are altered to return `IoResult<T>`. This turned out to be an incredibly far-reaching change!

Overall, I'm very happy with how this turned out (in addition with the `unused_must_use` lint). I had to almost rewrite the pretty printer in `libsyntax` as well as the the formatting in `librustdoc` (as one would expect). These two modules do *tons* of I/O, and I believe that it's definitely improved.

This pull request also introduces the `if_ok!()` macro for returning-early from something that returns a result. I made quite liberal use of this in mostly the pretty printer and html renderer, and I found its usage generally quite pleasant and convenient to have. I didn't really feel like adding any other macro while I was using it, and I figured that pretty printing could be nicer, but it's nowhere near horrid today.

This may be a controversial issue closing, but I'm going to say it.

Closes #6163