Added data-hooks where values were empty and fixed some repeated ids.

Fixe #4573
Use the root_object instead of @line_item.

This is the object the other views use for caching.
Use root object for credit card caching
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
Pass in order params on order creation so they can be overridden

Fixes #4693
remove reference to shipment.adjustment

shipment.adjustment no longer exists so we can kill this. also wasn't
tested, so no need to change test cases.

My understanding is with the adjustment refactoring we don't need to
deal with the open/close anymore anyway.
handle credit card names with spaces

this addresses a change from https://github.com/spree/spree/commit/71d4deed1aa815a2727357f2c35e2f544f5f1959

Fixes #4770
Update payment state any time a completed order item change

Fixes #4411
Fixes entering localized amounts for payments

While running Spree in Dutch locale, adding a Payment recognizes the decimal separator as thousands separator. So when using the pre filled value (e.g. 45.21) this will be converted to a much larger amount (4521.00). The fix makes sure that a localized value is filled in (45,21 instead of 45.21).

Tested on Spree 2.2.1

Fixes #4753
Add top level rake task to run all tests