Alter how absolute discounts are applied

Port https://github.com/tangentlabs/django-oscar/pull/588 to master.

Instead of applying absolute discounts iteratively, the discount should be averaged across all products in the benefit range.