Deduplicate Spree::Adjustment loads for performance

* Reduces the available object graph paths to access Spree::Adjustment
  instances to one.
* Reduces the amount of duplicates being loaded via performing in-memory
  scoping on associations.
* Significantly reduces the amount of lazy loads triggered within most
  order operations / populations through the elimination of duplicates.
@dkubb No. `Spree::Order#adjustments` returns the `Spree::Adjustment` instances where `#adjustable` is `Spree::Order`. In contrast `Spree::LineItem#adjustments` is supposed to return the adjustment instnaces where `#adjustable` is `Spree::LineItem`.