Truncate product description using truncate_html gem

Fixes #2518, Fixes #2323
Moving models out of core into separate gem
Remove unused Admin::PropertiesController
Remove constants from spec_helper in core
Must use spree.* prefix for routes inside CheckoutController

This is because CheckoutController's spec was failing
Fix controller specs

These have been failing due to recent respond_with changes... ideally we won't have to call routes with the spree prefix, but for some reason we need to do this now.

Why is that?
Correct syntax in OrdersController#update
Remove excessive respond_with usage in CheckoutController
[promo] Include CalculatedAdjustments into model to get calculated_adjustments functionality now
Correct TokenResource reference inside spec/lib/token_resource_spec
Remove fixtures + magical constants from shipping_methods_spec
Remove countries, zones, zone_members, states and roles non-clearance during specs
Don't hide the jstree context menu when the tree is clicked
Allow for authenticated user to make requests to the API
[api] Always include root products node on response from /api/products
Remove Api::ControllerSetup

Api::BaseController now inherits from Spree::BaseController, so we won't need this any more
[api] Correct stub for check_for_user_or_api_key in testing_support/helpers
Remove old require for spree/api/controller_setup
Clean up admin/taxonomies/get_children.json.erb a bit
Add API responses for jsTree