Improve error handling in ThriftProcessor and ThriftDispatchProcessor

These changes allow errors (principally network errors) encountered
during processing to bubble up to a caller of ThriftProcessor.process.
Note the signature of ThriftProcessor.process has changed.

ThriftSimpleServer has also been modified to report errors while
serving a client.