use respond_{to/with} in promo checkout controller

Fixes #2381
Improves query to fetch products from line_items

This creates 1/2 less queries when fetching producs from an order's line
items
Makes promotion#products always return an array

In case where rules that doesn't respond to #products are associated
with the promotion this method could break with:

  undefined method `flatten' for nil:NilClass

Fixes #2378
use on_hand method to get on_hand for variant while populating order so that :track_inventory_levels is taken into consideration. [Fixes #2379]

Fixes #2382
Display raw HTML tags from product description on order details page

Fixes #2323
Ensure that variant image value exists before attempting to call mini_url on it

Fixes #2392
Update licenses for new year.

Fixes #2391

[ci skip]
Removes useless call to order#update!

The only reason I could see for those to be there is to make a test
pass. But the problem was on the test itself due to the way stubs work.
Also add some doc blocks to CreateAdjustment class.
Remove CSV references from core.rake

These tasks do not support CSV files
Clean up Adjustment class

  - Removes info about attribute locked

    It was removed in 43a3cca49180b1572e41bc3638d3ca0f0e9116d9 in favor
    of an event machine.

  - Removes invalid block doc adjustment#update!

    adjustment#amount is actually saved when adjustment#update! is called as
    can be confirmed by update_adjustment in the CalculatedAdjustments
    module

  - Turn ruby class methods into Rails scope

    any reason to not keep these method as Rails scopes?

Fixes #2393
Allows old orders to get promo adjustments

UNACTIVATABLE_ORDER_STATES already covers scenarios where a promo should
not be applied to an order

Fixes #2388

Fixes #2395
Allow overriding of phone validation

Fixes #2394
fixes saving permalinks when using joins and includes

Fixes #2385
Improved update_shipment_state code

* added check for unassigned inventory for order shipment status
* rewrote the code to make less DB requests

Fixes #2246
Fix properties population when prototype selected and order them by position rather then alphabetically.

Fixes #2389
Merge remote-tracking branch 'upstream/master'