[WIP] Total price includes correct shipping method

Method `checkout.get_total()` takes into consideration only the cheapest shipping method regardless of the user's choice.
Each time `CartPartitioner.__iter__` returns new `DeliveryGroup` objects instead of the existing ones, hence [assigning a delivery method](https://github.com/mirumee/saleor/blob/master/saleor/checkout/__init__.py#L62) doesn't work.