Don't ignore the return value of SetDeadline()

It is possible that the runtime has already closed this connection from
underneath us and we would end up with a broken connection in the pool
(since we don't convert timeouts into ErrBadConns).  Fix simply by also
returning the error from Open(); we should not have to worry about
getting timeouts after Open() has succeeded.