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