Query only valid payments for order confirmation_required?

Prevent a confirmation step in cases where a previous selected payment
method which required confirmation failed and customer picked one that
doesnt require confirmation next

Fixes #3970
Refactor OrderIventory

An instance now holds a variant, line_item and order reader attr. It
makes the method signatures inside the class simpler. Plus an order
inventory instance job is figure whether or not inventory should be
created or destroyed based on the line item quantity
Add migration to associate line items and iu directly
Update Shipment `set_up_inventory` to work with line_items
Package `add` receives a line item as first argument

So that it can set the line item when creating inventory units. Variant
would still be fetched from the line item
Set completed_at after line items are created in order_factory

As it represents a more real use case. Having a empty completed order
would cause inventory issues when addin line items. e.g. It would try to
create inventory units for line items not yet persisted on the database
(read activerecord callback hell)
Fix specs related to package api changes

Had to modify the order factory which caused a bunch of other specs to
fail. Hopefully now it has a more reasonable approach which is first
create line items list then shipments and then update! itself.
Remove Stock::RemainingPacker (not referenced anywhere)

Had some broken specs there and decided to remove it rather then fix the
specs. It's not used anywhere and it's not clear why it exists so we
might be better off without it
Verify inventory after line_item is saved

We need the line item id when creating inventory units.