Validate totals

This branch adds validations to `Spree::Order`. It also makes sure the order totals are valid before persisting them.
I think that `states.map { |state| state.name.to_s }` is easier written as `states.map(&:name).map(&:to_s)`.