Batch Cleaning

Cleans out unneeded records in batches.

The one tricky part is the `Order#update` override. When deleting the records all the adjustments are updated, which causes the shipping to be recalculated. If shipping zones have changed and the shipment method is not valid anymore for the order an exception is raised and the cleaning stops.

I checked through the `Order#update!` code and didn't need anything that would cause an issue. Am I missing something? Is there a better method?