ManifestItem struct for items in manifest

Prefer Struct over OpenStruct (which is slower and masks errors)

Fixes #4039
multi_currency is not supported out of the box, so to make the sandbox work with the EU_VAT zone, it has to be in USD.

Fixes #3986
Fixes #3987
[backend] Added "Risk Analysis" section to the order page

Will check AVS+CVV responses to validate if orders are "risky" or not

Fixes #4021
listing_spec: use active_support date functions

This could fail if run in the evening when running specs in timezones
with negative offsets.

Using Time.current and Date.current ensures values entered are in UTC.

Fixes #4038 AND probably the CI build.

Conflicts:
	backend/spec/features/admin/orders/listing_spec.rb
Use single quotes in Order#is_risky, as double quotes are interpreted by PostgreSQL as meaning a column name, not a value
Only restock on_hand inventory units

Example: Spree restocks items once you cancel an order. However it
shouldn't add stock (restock) items from backordered inventory units.

Conflicts:
	core/spec/models/spree/shipment_spec.rb
Restock items but dont process backorders for canceled orders

Fixes possible issue where canceling an order with backordered inventory
units would make other orders inventory transition from backordered to
on_hand. e.g.

    - create two separate orders of the same item at the same stock location
    - both orders will have shipment state of backorder
    - cancel one of the orders
    - the second order inventory will transition from backorder to ready

Now the second order inventory remains backorder
Only show risk analysis section if there have been payments for this order