DRILL-3640: Support JDBC Statement.setQueryTimeout(int)
Allow for queries to be cancelled if they don't complete within the stipulated time.
This is done by having Drill[Prepared]StatementImpl create a Stopwatch timer to track elapsed time.
* DrillCursor uses this to detect timeouts.
* DrillResultSetImpl uses this to detech timeout from the client side (e.g. a slow client, when all batches have been processed by DrillCursor)
* Tests added to test these and other query timeout scenarios.
* Dependent on DRILL-5973 for enabling server-triggered timeout tests
NOTE: PreparedStatementTest.testServerTriggeredQueryTimeout is disabled
closes #1024