Proxy TCP/UDP errors on to client object

This will allow application authors to handle connection errors as they
see fit. This will be more resilient to failure.