Refactor Line Item Promotion Actions & Eligibility

Extract payload to a let statement.

Refactor eligible_rules to return rules.

This is helpful to understand which rules a promotion matched at some
point later down the promotion chain.

Extract line items to adjust in to Promotion.

This is part of moving the logic out of the promotion actions in to a
place that knows a little more about the context of what should be
applied.

Add actionable? call.

Move line item actionable to promotion.

No adjustments for non-actionable items.

The logic around this has changed a little, as adjustments are no longer
created for non-eligible promotions, due to the selection on actionable.

Remove products method (no longer used)

This is deprecated, as this logic is all done internally by the product
rule and related actions.

Closes #5036

Conflicts:
	core/CHANGELOG.md
	core/app/models/spree/promotion/actions/create_item_adjustments.rb
Set promo adjustment to 0 when not actionable

If an order qualifies for a line item promotion due to meeting some
condition (say, 10% off 5 or more), and the cart is updated so that the
line item promotion no longer qualifies, this will ensure that the line
item promotion is set to zero.

There is additionally some changes to hide promotions which are zero, as
they're not super interesting. The promotions are zero-d out and hidden
so that if at some point in the future the order re-qualifies, the
amount will be set correctly.

Closes #5245

Conflicts:
	frontend/app/views/spree/orders/_form.html.erb
Merge pull request #5 from gmacdougall/2-3-promotion-line-item-eligible

2 3 promotion line item eligible