should we not always be able to render the customer_detail searcher? this change makes this backend spec `features/admin/orders/new_order_spec.rb:25` pass.

Fixes #4193
Only inject requirements for api, backend + frontend if extensions require them
Improves Api::ProductsController#create
Fix api/products_controller spec on postgres
Remove variants from permitted_product_attributes

Since Product don't use nested_attributes rails feature for variants
anyway. Plus add some more tweaks to make sure it's possible to pass
either a hash of variants or of option types when creating a product.
Find or create shipping_category on api/products#create

Users can send a shipping_category string on the product payload and
spree will find or create that shipping_category and associate that
category with the product. e.g.

    product: {
      ...
      shipping_category: "Free Shipping Items"
    }
Accept both variant and variant_attributes

Keep compatibility with previous Spree versions
Add changelog for #4148
show the special instructions on the order if present

Fixes #4201
Fixes #4196
Use passed in order local to spree/checkout/_summary

First view spec in the Spree repo (!!)

Fixes #4223
Remove conflicts from api's products_controller due to bad rebase
Added Deface Hook for Payment Method fields

This adds a wrapper for the available payment method radio selectors to differentiate it from the other payment_methods field block which displays the gateway's applicable fields

Fixes #4222
Ensure that completed payments are automatically refunded when an order is cancelled
Removing align attribute from orders#show template

Fixes #2581
Standardizing 'Order #' display

Fixes #2581
Use DISTINCT ON/DISTINCT rather than GROUP BY for admin/products query

Conflicts:
	backend/app/controllers/spree/admin/products_controller.rb
	core/app/models/spree/product/scopes.rb

Fixes #2679
Custom roles with access to payments/return authorizations/etc. can now see these links, even if no objects exist within that collection

Fixes #3969
Fixes #4191

Conflicts:
	backend/app/views/spree/admin/shared/_order_submenu.html.erb
Single responsibility for meta!

Fixes #4095
Fix 'descount' typo in order/totals_spec
Check if payment is required before checking if there are any payments in ensure_valid_state