Fix comparison of decimal values

I've come across an issue with price comparisons when using prices with a calculated tax value. Depending on the price and the tax rate it is likely that we get a tax value similar to this:
```
>>> Decimal(12) * Decimal(0.20)
Decimal('2.400000000000000133226762955')
```
This results in the final price being ``Decimal('14.40000000000000013322676296')`` rather than ``D('14.40')`` which will result in comparison issues especially in the case of the ``get_warning`` method on the basket line. 

I am not quite sure if this is the best way of solving this issue as there might be similar issues in other places. So this is more of a suggestion. An alternative might be to change the precision of the context for Decimal but that probably has more unexpected side effects than anything else.