DRILL-968: Use checkstyle plugin to prevent inadvertent use of shaded Guava classes

+ Disallow non-static '*' imports in handwritten code.
+ Updated the current code to be in compliance.
+ Run 'rat' plugin in 'validate' phase.
DRILL-836: Drill needs to return complex types (e.g., map and array) as a JSON string
DRILL-735: Refactor HiveRecordReader

+ Create HiveFieldConverter classes for each Hive data type to extract value from Hive
  ObjectInspectorand set it in Drill ValueVector. These objects are created in setup.
  This way we avoid the switch case evalulation of type for each field in each row.

+ Use one form of Hive data type (TypeInfo) instead of two forms (string based type and type
  from ObjectInspector). This simplifies the converter functions such as getMinorTypeFromHiveType,
  convertPartitionType, etc.

+ Handle few primitive types that were not handled. Reading complex types is still a TODO.

+ Don't use HiveTextRecordReader as it is not completely implemented (few types are not handled)

+ Remove unused code: HiveInputReader.java
DRILL-735: Refactor Hive storage testcases into a separate test class
DRILL-735: Add a unittest to test reading from Hive table with all supported data types of partitions and fields.
DRILL-957: Fix schema failures when querying a partitioned Avro table in Hive.

When initializing SerDe in HiveRecordReader, we are not passing the properties
from Table to SerDe. As schema is in table properties, Avro SerDe fails to find
the schema and throws errors. For non-partitioned tables this is ok, as the
MetaStoreUtils.getTableMetadata already adds Table properties, but not for
partitioned Avro tables. Fix is to pass table properties to SerDe if the
table is partitioned.
DRILL-935: Run-time code generation support for function which decodes string/varbinary into complex JSON object.
DRILL-981: Display content of map object in the same order of original JSON object.
DRILL-482 : Return null value if cast function input is a null expression.
DRILL-534: Re-enable TPCH04
DRILL-954: Exclude servlet-api from classpath, and exclude duplicate servlet-api dependencies
DRILL-980: Add profile summary to web ui
Fix and improve runtime stats profiles
- Stop stats processing while waiting for next.
- Fix stats collection in PartitionSender and ScanBatch
- Add stats to all senders
- Add wait time to operator profile.
More stats fixes: Ensure we are calling the stats enabled next() method in the template classes for HashJoin, HashAggregate and StreamingAggregate.
More stats fixes: In PlanningSet, get majorFragmentId from the physical plan.

This is so the majorFragmentIds in the profiles will match those in the physical plan.
DRILL-585: Switch getObject in SQL accessors to return java.sql.* types.
DRILL-727: During logical transformation phase use the Project's traits instead of input traits when creating a DrillProjectRel.
DRILL-974: Windows sqlline.bat - Correctly handle spaces in the path to the Drill directory. Previously, if Drill was on a path such as for example, C:\My Home Dir\Drill Work\apache-drill-1.0.0-m2-incubating-SNAPSHOT, then sqlline.bat would not correctly parse this path and be unable to start.

original fix by David Kewley ( dkewley@maprtech.com )
DRILL-977: changed container style to fluid. Added column filter.
DRILL-932: Add support for bracketless complex expressions in SQL queries.