Improve performance when computing partitions domain summary

This brings down the computation time from 70s (for 12k partitions) down to 250ms on my mac.
The previous algorithm was O(N^2) on the number of partitions times some non-obvious factor due
to how SortedRangeSet.union is implemented. There's still some room for improvement there.
Categorize user errors

* Categorize a bunch of illegal argument exceptions as user errors
* Categorize division by zero as a user error
Rename HadoopApiStats and move it out of util package
Truncate SQL query text in index page

Large queries make the table hard to navigate.
Add DirectoryLister interface
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
Remove unnecessary synchronization between DriverSplitRunner processFor() and close()

This is causing callers to get stuck in close() while processFor() completes and
results in threads piling up. It's unnecessary since Driver is already thread-safe
Add release notes for 0.62
Cleanup data types documentation
Update to airlift 0.87
[maven-release-plugin] prepare release 0.62
[maven-release-plugin] prepare for next development iteration
Truncate SQL query text in index page (take 2)

Forgot to apply the change to the "running" queries table.
Send across only limited query stats to the UI