Rewrite decimal functions/operators as UDFs.

This patch also adds a GetReturnType() method to FunctionContext. This
is staging for the expr refactoring.

Change-Id: I854e79ded409e151663c4ec99c4e08631ad9e03e
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3234
Reviewed-by: Skye Wanderman-Milne <skye@cloudera.com>
Tested-by: Skye Wanderman-Milne <skye@cloudera.com>
Rewrite operators as UDFs.

This patch removes gen_operators.py, replacing it with operators.h/cc
and cast-functions.h/cc. Case cannot be implemented as a UDF so is
still expressed in original interface. This will be updated when the
main expr refactoring patch goes in.

Change-Id: I69df3b4546608ef641b8b845e9ec36d14e8c189b
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3406
Reviewed-by: Skye Wanderman-Milne <skye@cloudera.com>
Tested-by: Skye Wanderman-Milne <skye@cloudera.com>