HIVE-65. Rewrite typechecking to use the walker interface and add Resolvers to UDF and UDAF to support proper implicit casting in a manner similar to other RDBMSs (athusoo)