Cart: Refined implementation for handling disounts properly

Distributing remainder or excess discount to minimize total rounding
error and effectively gurantee that exactly the total discount is
distributed over all line items.