Discount distribution

Total discount amount is now distributed over all discount lines in a
similar fashion as when done over items: to make sure that the full
amount is distributed while minimizing rounding error.

Also added `Cart.totalGrossVatAmount` and `DiscountLine.effectiveDiscountAmount`

ping @xiaodong-izettle, @MrShish  or @puj 

This change makes this package contain everything vital for us to be able to use it in other projects as far as I can see.

Also: Suggestions for clearer naming convention (especially on the main Cart object) are welcome!

  

OK, as long as we know the consequence, and the test results corresponds to my experience. :)

I'm fine. May I merge?