Validate price maximum.

Price is constrained to be precision: 8, scale: 2 at the database level, but
that validation isn't reflected in the model.

This will lead to errors when prices are 1,000,000 or above, which is a lot in
USD, but 1 million Vietnamese Dongs is less than $50 USD.
I had originally gone about things that way, but Spree::Price gets very angry without a variant because of:

https://github.com/spree/spree/blob/d0c6166d686f014689ab39a19660c0742d4beed1/core/app/models/spree/price.rb#L34