Don't fill backorders on incomplete orders (e.g. in abandoned in payment state)

Currently the scope used to find inventory doesn't scope to those belonging to orders that are actually completed, so abandoned carts can have the inventory_units filled prior to real orders.

Also, I've changed the ordering to use the order's completed_at timestamp rather that the inventory unit's created_at timestamp. I believe the former is preferable in order to ensure that backorders are filled on a first come, first served basis. Otherwise people who had the item in their cart but didn't complete the order until much later could have their backorders filled prior to those who completed their orders earlier.

This should probably be applied to master and 2-1-stable as well but doesn't yet merge cleanly.