DRILL-1549: Partition pruning for simple IN filters.
DRILL-1534: Implement Mappify UDF to transform map into a repeated map with key, value pairs
DRILL-1511: C++ Client. Fix compiling issues in DRILL-1297 patch.

- Remove forward enum type declaration (not allowed in C++ 03).
- Add space between `<` and `::` to fix compilation of clang
DRILL-1305: C++ Client. Consume QueryState message from the Drillbit.
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.
DRILL-1566: C++ Client does not handle incoming record batches with zero records
DRILL-1564-WIP. Disable assert in SlicedByteBuf.