Return matching line in Basket.add_product()

add_product mostly handles updating or creating a basket line. Having
that line available is both useful when overriding the method, or when
calling the method from elsewhere.

Another lovely suggestion by @metamatik.