Handling Fees

As discussed by myself in https://github.com/spree/spree/issues/5210 (and commented on by @jhirbour and @labber), and discussed with @peterberkenbosch and @JDutil in the Spree Google group (and with @radar in the Spree IRC channel a couple months ago), I've put some thought into implementing Handling Fees as `Adjustments` applied from a `StockLocation` to a `Shipment`.

Here's the result of that work, for your consideration and discussion. I'm interested in any feedback, and of course in working towards a merge if things are looking good.

Note that for a reason I'm not fully understanding at the moment, I'm seeing `core/app/models/spree/stock_location.rb:3:in '<class:StockLocation>': uninitialized constant Spree::Core::CalculatedAdjustments (NameError)` when I initialize the spec. If anyone has ideas, I assume it's an easy fix.

Note also that this involved a refactor of the shipping calculators' `compute_package` methods, which I think modularizes that code pretty nicely.

It seems to work quite well in the browser, and behaves as expected.

Cheers!
Oh weird, that isn't supposed to be part of the commit, and I'm not sure how it snuck in there -- maybe a rebase glitch on my end. I'll fix that.