Replace spree_current_user for try_spree_current_user

As that's what the core provides. This should fix the errors in frontend
build
Only validate the month/year for CC info if there is no payment profile
A payment profile can either be a customer id or a payment profile id
Only show last digits on payment form if they exist
Added gateway_customer_profile_id and gateway_payment_profile_id to permitted attributes (for Stripe.js support)
Persist address ids on UserAddress module

Otherwise addresses would not be associated with the user at all
Introduce channel attr to Order model

Could be set when importing orders from other storefronts
Add `ship_total` to api order_attributes
Make api helper attributes class attributes

To make it easier to append more attributes. Other applications /
extensions can append their own stuff without having to override
methods. e.g.

        Spree::Api::ApiHelpers.order_attributes.push :locked_at
Make OrderInventory aware of `track_inventory_levels`

It should not create backordered inventory units when it is set `false`
use the new Spree logo [Fixes #3975]
[api] Do not call object_params twice within CheckoutsController

Fixes #3965
Allow variants to have a different tax category to product Defer to products tax category if one isn’t set on variant/no variants created

Fixes #3946
Add changelog entry for #3946
Replaced Taxon :position refs with :child_index=

Fixes #3390
Fixes #3956

Taxon position unnecessarily fights against the awesome_nested_set
API. By using a_n_s's :move_to_child_with_index method we can more
fully leverage acts_as_nested_set.

Conflicts:
	core/app/models/spree/taxon.rb
	core/spree_core.gemspec

Conflicts:
	backend/app/controllers/spree/admin/taxons_controller.rb
Not attempting to reorder taxon on create since awesome_nested_set refuses
quote classname for Order#all_adjustments

Class names must be strings so that they don't try to load the class that they're referencing
No longer attempt to add tax_total column if it already exists
Price inclusive tax adjustments are no longer included in total calculations
Split taxes into included + additional

Included are those which are already included in the price and there should not be an additional adjustment applied on top of that.

A great example of this would be Australia's GST of 10% on some items. Something worth  would have 10% of that price made up by GST, so the base price of the item would be .54545... however, the price displayed is  everywhere. On the receipt from a store, you would see GST tax amount included which is NOT addeed to the total.

A great example of an additional tax would be the USA's Sales Tax, whereas on the shelf it may say 0 it could have a tax rate of 8.25%, resulting in the item *actually* costing 0.825.

It's worth noting here that we only need to pass the additional tax amounts to the gateways, too.