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
Well that's the point of the jira you filed - if there is only one ``Object`` then if it is, say, an ``Integer``, it may be deserialized by GSon to a ``Double``.