Use custom errors for `dns::hp::read_dns_*` methods.

Updated to use `dns::hp::err::ReadError` as the `Result<T,E>` error
type rather than `std::io::IoError`.