Only count eligible promotions towards Promotion#credits

Fixes #4120
Only create an order when adding a product to cart

Everytime user was authenticated an order was created by visiting any
page in frontend (if none were already associated with the current user)

Fixes #4136

Conflicts:
	frontend/spec/controllers/spree/orders_controller_spec.rb
show the SKU when present on the line_item.variant

Fixes #4045
Refactor DelegateBelongsTo to not touch db on startup
Flush out association between payment and its method.

Change-Id: I7ae6a6071ad9959eacb48bda75061e58236e674f
Add CHANGELOG entry for js responder security fix
Revert "Make sure that api requires authentication by default"

This reverts commit 1f2ff2c80bf2ba0a342cb61ebbe1b659ec0c14d4.
Update inventory after_save

It helps to work some logic with the LineItem because at that point we
would have the record id already. Main motivation here is so that
inventory units wouldn't have a line_item id nil when adding products
via backend to an order (in a product-assembly context)

Conflicts:
	core/app/models/spree/line_item.rb
Remove deprecated without_protection from specs