Change QueryResult to retain column value types

https://issues.cask.co/browse/CDAP-384
Since a Hive query result row only contains objects of primitive types, we define a new QueryResult.ObjectResult that holds the type and the primitive value.

Bamboo build: https://builds.cask.co/browse/CDAP-DUT114
That's true, but maybe it makes more sense to either have

1) `ResultType type` and `Object value`, or
2) `Boolean booleanValue`, `Byte byteValue`, etc. (no `ResultType`)

Seems like the current way is duplicating unnecessarily, but maybe I overlooked some issues.