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 To my (not confirmed lately) knowledge `block_given?` is a dedicated VM instruction, that might be faster than accessing the lazily populated lvar that gets populated on first access. At least I remember implementations avoid the cost to create a `Proc` to the moment they are fist created.

To me this is not a speed issue. I consider `block_given?` the most clean way to test if a given method was called with a block. It is dedicated for that test. Many times more specific than testing an lvar.

We can discuss this the next time we have to touch this code. I'll be prepared with benchmarks that time. Meanwhile I'll test for falsy `block` lvar as you suggest ;)