Refactor HiveType

Move Type out of HiveType, in preparation for supporting parametric
types