Con este cambio parece que la cosa funciona. Vean el metodo
LineItem::descuento(). Este, junto con
Venta::agregarAplicacionDescuento, son un monumento a mi dominio de la
algoritmia o un recordatorio de las atrocidades cometidos en el diseño
de Descuento. Con al algoritmia "funcionando" (vean los últimos test de
VentaTest.java) se podría modificar el diseño para que sea menos
horrible los algoritmos. El cambio sería hacer que LineItem no tenga
cantidad sino que represente una única unidad de un Producto. Tal vez
con los test unitarios completados se pueda encarar ese cambio.