DRILL-1533 C++ Drill Client always sets hasSchemaChanged to true for every new record batch

Free up memory from columnDefs. Added a check to ignore empty data. Empty oldSchema if still contains items in the end
DRILL-1498 Drill Client to handle handshake messages in handleRead and to ignore spurious results
Drill-1537: Passing listener context directly to the QueryResultsListener callback function.
C++ Client. Correct the setting of SYSTEM_LOCALTIME_MIN for Windows platform.
C++ Client. Enable passing CMAKE_CXX_FLAGS, CMAKE_C_FLAGS options from cmake.

Also it contains specific changes needed by ODBC Driver.
C++ Client. Add trace message for C++ client freeBuffer and improve connection log message.
DRILL-1197: C++ Client. Differentiate socket/handshake/query timeout for deadline timer.

- add trace logging for error handling.
- return more detailed connection status for validate handshake.
- some bug fixes for time out.
DRILL-1219: C++ Client. Fix timeout for 32-bit windows platform

Disable boost cancel io and use shutdown socket operation.