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.
`#source` still can return duplicates. Early in the development of this code I found cases where `#eql?` returned `false` on this. Since lots of related code has been changed I'll recheck this. Good catch. Later after the next pass we might even be able to use `#equal?` here.