Assign request headers to Payment on checkout

This might come in handy for some gateways, e.g. Adyen, actions that require
data such as user agent and accept header to create user profiles. Previously
we had no way to access the request headers from within a gateway class.
Master should be made out of stock when its variants are created. Fixes #3767
fix failing specs for #3767, make sure the master product factory starts with some stock on hand.
fixed duplicated rows id's and name when selecting properties from prototype

Fixes #4155
Order#process_payments! no longer raises

The original use case for this was to prevent the order to complete with
payments in failed state. However this also prevents the order to
complete when a payment was already authorised and marked as processing.
This may happen when authorising a full payment amount while creating a
payment profile.

This commit essentially pushes the responsability of raising a
GatewayError to the Gateway
simple_current_order only gets incomplete orders

This currently causes an issue with better_spree_paypal_express, and
possibly other extensions.

While Spree sets the session's order_id to nil when an order is
complete, better_spree_paypal_express does not.  Therefore, a completed
order can be retrieved as the simple_current_order.

It makes sense to replicate the logic of current_order (which does not
allow completed orders to be returned) here.

Fixes #4702
No payment error when order has no payment

Follow up to 20b47028f786257c4283a33626a7d4111d9b9669
Allow payment transition from processing to void

Another follow up for having a gateway both create profile and
authorize full order amount before order transitions to complete.
Default item quantity to 1 on api/orders/:number/line_itmes
Set CreditCard#confirmation_value when reusing cards

Allow gateways to double check that value when reusing the card
Add I18n.locale for views cache
[Fixes #4673]
[Fixes #4678]
Fix FA class for picture

Oh, Picture-o, Picture-o

Fixes #4710
change precision for amount to 10

Fixes #4669
Drop not null constraint for amount in spree line items
fix typo in data-hook.
Closes #4718
check for default_tax present as well.

Fixes #4645
Add data-hooks to admin/products/new and admin/products/_form

Similar to https://github.com/spree/spree/pull/4521, this commit adds data-hooks that make manipulation of the admin/products/new page considerably easier, cleaner, and more succinct.

Fixes #4682 and #4683

Conflicts:
	backend/app/views/spree/admin/products/_form.html.erb
Update return_authorization.rb

This should be a belongs_to since the stock_location_id is on the spree_return_authorizations table. Currently it throws an error
```
     Failure/Error: trial.purchase!({trial_item.id => :return})
     ActiveRecord::StatementInvalid:
       PG::UndefinedColumn: ERROR:  column spree_stock_locations.return_authorization_id does not exist
       LINE 1: ..._locations".* FROM "spree_stock_locations"  WHERE "spree_sto...
                                                                    ^
       : SELECT  "spree_stock_locations".* FROM "spree_stock_locations"  WHERE "spree_stock_locations"."return_authorization_id" = $1 LIMIT 1

Closes #4620
updated ga snippet

Closes #4567

Conflicts:
	frontend/app/views/spree/shared/_google_analytics.html.erb
add order.total_tax method to encapsulate the included and additional tax

use order.total tax in google analytics

Fixes #4724
Fixes #4721