Fix for issue 4839

Fixed so that changing address to a non-taxable zone now reverts the applied tax. 

@radar sorry for the delay, I got sidetracked with my kid last night. After looking a little closer, the call will actually be ```Spree::ItemAdjustments.new(item).update``` (not recalculate_adjustments) but I ran into one more snag that I'm hoping to resolve before committing. 
Unfortunately, Spree::ItemAdjustments calls reload on the item passed into the initializer (https://github.com/spree/spree/blob/master/core/app/models/spree/item_adjustments.rb#L13). The fact that we're calling this initializer in a loop now makes me concerned for the performance of the whole thing, so I'd like to avoid the reload if possible. I'm thinking I'll add ```if @item.changed?``` to this line, so it doesn't unnecessarily reload from the database if it's a clean object, which seems likely. Of course, this risks the object being stale and not knowing it, due to concurrent data changes elsewhere, but I think we run that risk even after calling reload, so I'm less worried about it. If specs pass with that change, I'll commit it. Let me know if you see any concerns there.