Log uncaught IOExceptions instead of rethrowing them.

The application layer can handle these with a try/catch block in their
onResponse method if desired.

This prevents a crash for applications that haven't deliberately configured
their uncaught exception handlers.

Closes https://github.com/square/okhttp/issues/1049