Handle exceptions in driver code

Previously if a driver function raised an exception, the client was
reconnecting and a twisted traceback was printed. The twisted traceback
included too much irelevant information that can make it harder to
understad the error in the driver function.

Now when driver is raising an exception, we print more clear excpetion,
and keep the connection to the server.