Support per-user limits on coupons.

This restricts users from placing multiple orders with the same discount.
This is a commonly used feature in Magento for sites that have a max $ limit
on their coupons. Users bypass this by placing multiple orders. Magento
however doesn't force you to be logged in during the time of ordering,
so it's easily bypassed that system.
Refactor Adjustments & Order to reduce logic
[Inventory] Availability checker must check that variant was not deleted
Add basic order edit functionality to backend with extended change logging
Extend product editing history
Fix price display in history logs
Fix problems with history log using wrong IDs
Move design polishing, adding ability to change order state & currency
Make shipped orders immutable
Prepare for order coupon editing, fix order history for immutable orders
Allow adding order items in backend
Update select2 library, add option to find product by name
Initial Contact component.
[Core] Fix promotion bug that was introduced by wrong merge + fix specs
Initial Contact bundle.
Add missing parameter for the order update listener
Fix adjustment calls in order form template
[Core] Address zone based price calculator
Initial Behat scenarios for contact topics
Added templates, routings, translations and fixtures for contact