Check line_items key exist before mapping (api)

Sometimes we might want update only an order attribute, e.g. email, and
not the line items. In that case users would get an error response so we
better check if the key exist
Better error messages when importing orders (api)
Set up attributes for successful order import

Conflicts:
	api/app/controllers/spree/api/orders_controller.rb
	api/spec/controllers/spree/api/orders_controller_spec.rb
Fix conflict after gem money 6.0.0 release

This would bring #2737 back but we need to be able to bundle and
activemerchant current release require money < 6.0.0
Generate unique indexes for new styles attachments form

Fixes #3940
Ensure api/orders return updated_at with miliseconds
touch updated_at in objects after changes

Fixes #3939
Spree.user_class class variable accepts a symbol value

Fixes #3930
LineItems#update and LineItems#destroy uses now OrderContents to update line items, ensuring order total, adjustments etc. are updated

Fixes #3931
Fixed promotions not updating after adding or removing item

Fixes #3931
Fixed error with Cart promotion handler when line_item was nil

Fixes #3931
refactor some checkout module methods

Fixes #3943
Introduce `persist_order_address` message for user

This would be resposible for associating the current order address with
the current user so that next time users checkout an order his previous
address would be automatically loaded
Add basic module for persisting order address on user

To make Spree remember user address on checkout users could include this
module to their Spree.user_class or build their own implementation of
`persist_order_address`
Allow users to choose whether they want to save their addresses
Add mail method translations
Scope translations for security settings + auth settings for mail methods

Fixes #3951
Replace spree_current_user for try_spree_current_user

As that's what the core provides. This should fix the errors in frontend
build
Only validate the month/year for CC info if there is no payment profile
A payment profile can either be a customer id or a payment profile id