Scope stock locations before looping through them
Process only checkout payments from Order

Looping through a method call Order#pending_payments only to call
`process!` on those payments is misleading. Payment#process! will
actually set the payment state to "pending" so Order#process_payents!
could authorize / purchase a payment twice given the payments already
touched by gateways will have a pending state.

hopefully Order#unprocessed_payments makes it more clear which payments
exaclty are supposed to be processed when order completes
Its duplicated a few lines below

Closes #5226
Handling different currencies when importing orders/line items. Also making sure that errors with the line item are being raised and causing the import to stop

Closing #5107