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.
> I would suggest coercing params[:id] to an Integer instead of coercing each adjustment id to a String.

I recently discovered that any kind of coercion of plaintext input into another representation for validation proposes can be harmful. Its generally more safe, and at least to me, easier to understand via comparing something generated from known-to-be-valid input to external input than trying to coerce the external input into a comparable representation.

This article inspired me to inverse the coercion: https://www.imperialviolet.org/2014/09/26/pkcs1.html

In case we want to follow *ideomatic rails* we probably should not use `#fetch` since it raises an unexpected exception instead to silently return nil.

Full ack on making the method raise an `ActiveRecord::RecordNotFound` in case the adjustment could not be found by id.