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
Don't allow single-variant enums to be dereferenced. #6246

I'm not sure if this was even intentional at this point.
Don't allow newtype structs to be dereferenced. #6246
rustc: Add error about obsolete struct deref