use .try on @differentiator into delivery step

in order to prevent NoMethodError when it is nil

Fixes #3984
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 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
Use templates for option_values + option_types in products/show to DRY up things
[api] Cache products/show view

This can reduce the time it takes for a request to /products from > 1 second to < 75ms

Before: 1048.7ms
After: 65ms

If a product property, option value, option type, image or variant of a product changes then the product will be touched which will invalidate the cache.

Conflicts:
	core/spec/models/spree/variant_spec.rb
Clear CHANGELOGS for 2.1.4
Added changelog entry for cache improvements