Improve type changing/casting code

Now there are underlying primitive calls that avoid BigDecimals. One tests
data to determine what is the best method for casting. TypeChanger uses such
an approach to quickly and accurately cast. It can fall back to BigDecimal
based casting if needed.