Refactoring shipment taxes creation

I think we should concentrate the shipment cost logic in existing methods where we would expect to require an update rather than spreading update totals across the code base. I'd love to apply a similar approach on line item taxes but I'm afraid I can't do it tonight.

I'm aware that we need better test coverage for the scenarios and look into performance. Will do my best to come up with something on the following days. There's still more to tweak but this is the approach I believe we agreed in https://github.com/radar/spree/commit/4c49afc3552e61e14a136c2f7131e90b2d9c4e82#commitcomment-3969247 thanks Ryan!