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.
rearrange header file layout and formating
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.

Conflicts:
	contrib/native/client/src/clientlib/drillClientImpl.cpp
DRILL-1219: C++ Client. Fix timeout for 32-bit windows platform

Disable boost cancel io and use shutdown socket operation.
C++ Client. Correct the setting of SYSTEM_LOCALTIME_MIN for Windows platform.
C++ Client. Add trace message for C++ client freeBuffer.

Conflicts:
	contrib/native/client/src/clientlib/utils.cpp
C++ Client. CMake file specific to Dirac DrillClient.
C++ Client. Run a new thread for each drillclient.

Conflicts:
	contrib/native/client/src/clientlib/drillClientImpl.cpp
C++ Client. Comment out assert(0)
C++ Client. Enable passing CMAKE_CXX_FLAGS, CMAKE_C_FLAGS options from cmake.
C++ Client. CMakeLists.txt specific to DiracClient [cont.]
C++ Client. Catch the exception in freeBuffer (a better way is to catch it in destructor).
C++ Client. A fix for query id removed before query process finished, created by Norris.
C++ Client. Improve connection log message.