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.
Because the API is [byzantinic](http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-find) and we only have one call side. This call side originally has an argument in `String` form. This would given the "we only implement interface where we have an call side for" require us NOT to accept `Fixnum` instances. Which would be kinda weird.

`Fixnum` as argument is IMO the normal case. And `String` from `params[:id]` is an denormalized form the controller is normally supposed to filter away from the domain models.

As I write this I remember "THIS IS IDEOMATIC RAILS", just like "THIS IS SPARTA" and I self convinced me to accept Strings via `String#to_i` - And for the amusement of readers I'll not clean up this post :P