Change ErrorCode to a concrete class, to allow it to be json serialized
Refactor failure handling

Split FailureInfo into ExecutionFailureInfo and FailureInfo, so that error codes can be propagated back from workers
Add counter for total failed queries
Upgrade to airlift 0.87-SNAPSHOT
Remove debug logging

It makes the logs too verbose and doesn't add much value.
Use a private I/O thread pool for failure detector
Allow additional modules with TestingPrestoServer