Fix for bug #0005162 - voucher duscount calculation fix.  Case is: voucher series with fixed discount amount assigned directly to product.  It makes voucher discount apply only once for all basket items.  Originally if You had several articles assigned to same voucher series and put those articles to basket and apply a code, then You got a discount value multiplied as many times as there are articles.  It limits discount only if "Calculate once" checkbox is set. (Originally this checkbox reacted only on amount of same articles, not on different articles from same series) (cherry picked from commit 40f8504)
02 contribution test fix
03 code cleanup
04 code clean up, typo (cherry picked from commit 24ce282)