Fix scaling issues and provides a small performance boost (5-8%). setScale returns a new BigDecimal; it does not mutate. Thus everywhere we were using it, we were throwing away the scaled value.

Add some short-circuit code for setScale (often called), and mark things read-only.
Lift "ten" out of functions and into a static readonly variable.
Merge pull request #3 from MichaelGG/decimal_fixes

ENG-4021 - decimal scaling issues