Having a spree_api_key field on the user model is optional

This removes failure cases when the spree_api_key is not available on
the spree user model.
Revert "Having a spree_api_key field on the user model is optional"

This reverts commit c6924cd02681536d98faa3ccf0ca1c8d88a6872c.
Make order-update concurrency safe

When two order-updates happen at the same time, we can loose one of the
updates without this change. This locks the row on select, ensuring that
any subsequent changes don't get overwritten.
Merge branch 'fix/order-update-concurrency' into 2-1-dev