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
fix font-awesome icons for admin taxons tree

Closes #4717
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
use fa-check since fa-ok is no longer available.

Fixes #4720
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