Don't consider read timeout as an error - issue #2

If all went well when sending the notifications, conn.Read() will return
a net.Error with Timeout() == true, which we consider to be a success.

Therefore we should conditionally swallow this error, but still return
other network and i/o errors to the caller.