Simplify set_current_order. Fixes #5382

Conflicts:
	core/spec/lib/spree/core/controller_helpers/order_spec.rb
Search for guest order first before running Order.new

Fixes #5441
Add inverse_of for more associations involved in cart processing
Fixes #5488

Conflicts:
	core/app/models/spree/order.rb
	core/app/models/spree/tax_rate.rb
Loosen kaminari dep. Fixes #5486
Add inverse_of for more associations involved in cart processing

Conflicts:
	core/app/models/spree/return_authorization.rb
	core/app/models/spree/zone.rb
	core/app/models/spree/zone_member.rb

Fixes #5489
remove extra dependent destroy
fixes #5492
Fixes messaging after applying coupon code promo with CreateLineItems action. Fixes #4697
Refactor Spree::ProductHelper#variant_price_diff

* Change the logic of the code to make it easier for the next
  commit.
* Remove duplicate code from the HTML generation.

Change #variant_price_diff to handle when the product amount is nil

Fixes #5493
Add required attributes to required product admin form fields

* Adjust spec example inputs to allow submit with that restrictions.

fixes #5496
make bogus gateway match actual gateways. ie. don't assign profile id for failed payments

fix handling of retry payments and multiple payments

fixes #5499

Conflicts:
	core/app/models/spree/payment.rb
Make some strings on admin product edit form translatable
fixes #5500
Fix displaying product & taxon names when meta_title present.

Fixes #5502
Fixes #5501

Conflicts:
	frontend/app/controllers/spree/products_controller.rb
Revert "Fix displaying product & taxon names when meta_title present."

This reverts commit ff64cca25080555636254be7f792539c287c0273.
Depend on factory_girl_rails 4.5.0
We need to be more restrictive with factory girl updates.
Add circle CI setup
Set specs failing in upstream to pending
Change #current_order to always lock the order when querying

* I believe some of the problem with the deadlocks is happening because
  of inconsistent locking, and updating without acquiring a lock properly. As a
  test I am going to enable it across the board and see how things perform.

Conflicts:
	core/lib/spree/core/controller_helpers/order.rb
	frontend/app/controllers/spree/checkout_controller.rb
Add validations to stock items and stock movements
Change Spree::OrderUpdater#update to be performed inside a transaction