DRILL-1878: Unable to start Drillbit in distributed mode on Windows

(cherry picked from commit 0831d72efffffb48511ab01776c66fce0c7dc7ef)
DRILL-1879: Unit test failures on Windows

(cherry picked from commit 9360e250b71a764af322a6b7d8808eab49387945)
DRILL-1881 - Test o.a.d.TestBugFixes#testVersionTable fails while building from source tarball

(cherry picked from commit e3ab2c1760ad34bda80141e2c3108f7eda7c9104)
DRILL-584: Prevent second level of implicit casts to be added in ExpressionTreeMaterializer
DRILL-1882: Add cast function from Varbinary to date/time/timestamp

Add bit comparison function
DRILL-1883: Fix output type of date, interval arithmetic functions
DRILL-1884: Fix type cast rules to cast varbinary to timestamp
DRILL-1779 Added functionality for unix_timestamp() similar to MySQL
DRILL-1869: CPP client - Handle nullable varchar columns with all nulls (fixed slicedByteBuf to handle zero length buffers). Also handle case where server sends a record batch where vector value counts  are zero.
DRILL-1848 Unsupported operation exception
DRILL-1849: Make parquet readers return nullable int instead of nullable bit for unknown columns.
DRILL-1871: Compressed JSON read support.
DRILL-1886: Project on subquery containing a union all causes NPE
DRILL-1887: Add code-gen for explicitly comparing null values for hash table keys and make corresponding change for hash aggregation and hash join.