IMPALA-1596: switch on decimal byte size in decimal builtin functions

This is necessary for correctness, at least in the case of
LeastGreatest() (the current implementation might not work with
negative numbers, since it's comparing the entire 16-byte value but
only the first 4 or 8 bytes may be sign-extended).

As is, this incurs a slight perf hit since we don't codegen away the
switch statement yet. However, the perf hit is small (< 5% in the
worst case), and I'll post a patch for codegen'ing away the switch
statement soon.

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