Fix html safe when cart is empty
Use the payments currency rather than config for multi-currency.
Added data-hooks where values were empty and fixed some repeated ids.

Fixe #4573
Fix broken icons in the admin interface.

Fixes #4756
Fix broken cache on api/orders

The cache keys were not unique anymore because we were passing nil, e.g.
`@order` is not defined when rendering api/orders.json, same thing
happened with all nested objects using a instance var instead of rabl
`root_object`

Fixes #4757
Populate Order#shipment_total for users upgrading

Previous to Spree 2.2 orders didn't have a shipment_total. This should
populate that new column for legacy orders

Fixes #4684