Replace IoError(io::Error) with IoError(Rc<io::Error>)
Replace IoError(io::Error) with IoError(Rc<io::Error>)

As per https://github.com/rust-lang/rust/pull/23919, the Clone and
PartialEq traits were removed from io::Error, breaking the derived
Clone and PartialEq trait of ParserError.  Use Rc<io::Error> to get
Clone back, and implement PartialEq manually.

Signed-off-by: Anders Kaseorg <087231934ba8fcf78bc142ce37d193b895ac03c4@mit.edu>

gbersac/rustc-serialize