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
add order.total_tax method to encapsulate the included and additional tax

use order.total tax in google analytics

Fixes #4724
Fixes #4721
Dont mess unrelated records on CreateItemAdjustments#destroy
session[:order_id] => cookies.signed[:order_id]

Now we are using a signed cookie to store the order id on a guests
browser client.  This allows customers who close their browser to
continue their shopping when they visit again.

Fixes #4319
Improve specs for CreateItemAdjustments#destroy
Always pass currency to Spree::Money for multi-currency.
Need ability to pass currency option for multi-currency.