Pass price object around instead of Decimal

This allows payment processing to know the currency of the total.