Add optional precision and scale to DecimalType, but use Unlimited for now

Implement CAST to fixed-precision decimal

Add rules for propagating precision through decimal calculations

These work by casting things to Decimal.Unlimited to do the actual
operation, then adding a cast on the result. They will result in more
casts than needed, but on the other hand they avoid having each
arithmetic operator know about decimal precision rules. We might be able
to add more rules later to eliminate some intermediate casts.
Added mutable Decimal that will be more efficient for small precisions

Optimize sums and averages on fixed-precision Decimals
Update to Parquet 1.6.0rc3, and allow reading decimals from Parquet