Ensure PaymentVariant.price is Decimal

Satchless variants have a precision of 4 for rather foolish reasons (the maximum precision in any actual currency is 3, and we don't even support those currencies, but oh well).