Factor a TestingPrestoClient out, add a single node server query runner.

This removes the query specific code from the DistributedQueryRunner
and adds a new QueryRunner that uses a real, albeit single-node,
embeded discovery TestingPrestoServer. Unlike the LocalQueryRunner
which fakes a presto engine, this is a full-fledged server.