Remove std::either
auto merge of #11149 : alexcrichton/rust/remove-either, r=brson

Had to change some stuff in typeck to bootstrap (getting methods in fmt off of Either), but other than that not so painful.

Closes #9157
libsyntax: De-`@mut` `ParseSess::included_mod_stack`
librustc: De-`@mut` the parse session
libsyntax: De-`@mut` `StringReader::pos`
libsyntax: De-`@mut` `StringReader::last_pos`
libsyntax: De-`@mut` `StringReader::col`
libsyntax: De-`@mut` `StringReader::curr`
libsyntax: De-`@mut` `StringReader::peek_tok`
libsyntax: De-`@mut` `StringReader::peek_span`
libsyntax: De-`@mut` `TtReader::interpolations`
libsyntax: De-`@mut` `TtReader::repeat_idx`
libsyntax: De-`@mut` `TtReader::repeat_len`
libsyntax: De-`@mut` `TtReader::cur_tok`
libsyntax: De-`@mut` `TtReader::cur_span`
libsyntax: De-`@mut` `TtReader::stack`
libsyntax: De-`@mut` `StringReader`, `TtReader`, and `reader`
librustc: De-`@mut` the span handler
librustc: De-`@mut` (and de-`@`) the pretty printer
librustc: De-`@mut` all writers