Spree.user_class class variable accepts a symbol value

Fixes #3930
Timestamps to json give us miliseconds precision

Motivation here was ensure api/orders return updated_at with miliseconds
couldn't find any other easy way to do so. Rails 4 already does it
default
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
Introduce channel attr to Order model

Could be set when importing orders from other storefronts

Conflicts:
	api/CHANGELOG.md
	api/spec/controllers/spree/api/orders_controller_spec.rb
	core/CHANGELOG.md

Conflicts:
	api/CHANGELOG.md
	api/app/controllers/spree/api/orders_controller.rb
	api/app/helpers/spree/api/api_helpers.rb
	api/spec/controllers/spree/api/orders_controller_spec.rb
	core/CHANGELOG.md
Make line_items attr handle more flexible on api

When importing orders or creating orders and line items at once the
line_items key on order payload would provide an array not a hash. The
API need to consider then that both hash and array might be provided and
handle it gracefully

Conflicts:
	api/spec/controllers/spree/api/orders_controller_spec.rb
Add sku to line item attr_accessible

Allow users to find variant by sku when importing orders

Conflicts:
	api/app/models/spree/line_item_decorator.rb
Add `ship_total` to api order_attributes
Allow inventory tracking control (enable/disable) at the variant level. This retains the site-wide inventory tracking flag, but also allows this type of control down at the variant level.