Using `find_each` instead of `all.each` to improve memory

This syntax will run our migration over the `Spree::StockTransfer` model in batches, which will improve performance on stores with high numbers of stock transfers.

Fixes #4473
Use `find_each` rather than `all.each`

Perform the CreateDefaultStock migration in batches to lower memory footprint.

Fixes #4475
typo fix in CreateDefaultStockMigration

Fixes #4474
Improving performance via find_each and includes() in UpdateAdjustmentsStates migration

Fixes #4459
Fixes #4468
Removing .includes() call from MigrateTaxCategoriesToLineItems

Addresses the bug discussed in https://github.com/spree/spree/issues/4460

Note that this will make the migration slower, but less buggy in the case that LineItems refer to deleted Variants or Products.

If the `acts_as_paranoid` gem can be modified to allow "unscoped" `includes()` calls, then we can reinstate the performance improvement.

Fixes #4460
Fixes #4471

Conflicts:
	core/db/migrate/20130802022321_migrate_tax_categories_to_line_items.rb
Fixes issue where deleting and creating product properties at the same time caused an error on the product page stating the product could not be found.

When deleting a product property it was deleted from the database and the row was hidden (not removed) on the frontend. On submitting the form, the now deleted property id was still present causing the error when trying to load the property with that id from the database.

Fixes #4467

Conflicts:
	backend/spec/features/admin/products/properties_spec.rb
add currency to Spree::Api::ApiHelpers.order_attributes

as per @radar's [suggestion](https://github.com/spree/spree_hub_connector/pull/20#discussion_r10730423)

Fixes #4462

Conflicts:
	api/app/helpers/spree/api/api_helpers.rb
Don't assign shiping_category if it exists

Fixes #4401
Fix promotion eligibility rules

Prior to this change, a promotion's determination as to whether it has been applied to an order would always fail, since the order's calculation of whether a promotion credit exists compares against a promotion action, not a promotion. This change makes a promotion check whether its promotion actions have been applied to the order to see if it is on the order.

fix for failing test, switch to order_with_line_items factory

Fixes #4445
Add tax_total back to api_helpers#order_attributes