* enforce max_affected_items during offer application also restrict the usage of offer consumption to line.consume() * improve test coverage