Fix DECIMAL parser wrt scale

The basic problem is that BigDecimalWrapper had a two-arg round method whose contract was ill-defined (it did not really impose the given precision -- that was the caller's job) and whose implementation ignored scale altogether. So, just remove it and use the remaining one-arg version. And extend when this happens: any difference in scale, not just "too many decimal digits".

Add a unit test for this parser, since it is pretty complicated.