RefundsUnits trait to generalize SupplyTruck + AcceptsSupplies.

~~[previous bad impl]~~

**New implementation:**

No `Cargo` abuse this time.
Works the same as capturing per @pchote's suggestion.

~~[Failing](https://github.com/OpenRA/OpenRA/pull/5925#issuecomment-52877026) for the time being.~~
Please don't commit all the changes the utility does.