Raise a wrapped network error if not threaded
Where possible, don't rescue Exception

This allows single-threaded applications to set a Timeout and be
assured that no one will intercept it.
Merge pull request #89 from gdb/master

Improve error handling capabilities for single-threaded applications