Switch to Docker based Travis builds

This should give us 4GB of memory instead of 3GB and also more CPU
resources
Fix comparison of types in analysis of UNION
Fix TpchColumnHandle.equals() to compare types correctly
Fix comparison of types in AggregationCompiler
Add CLI program to benchmark a Presto cluster
Include both sources in IndexNode sources list

getSources() is meant to return all subplans of a given node as it's
used for various plan-walking activities.
Implement PlanRewriter as a regular visitor

The rewriter interface abstraction is unnecessary.