Add a DecimalRepresentationConvention to change the default representation of a decimal

mirrored from EnumRepresentationConvention

Several people have asked for this, although they might want to consider using doubles to avoid mismatch in precision, I figured they might as well have the ability to change it globally if they still want to use decimals.