Take context into accont when searching for prodlots

The current implementation of _stock_search returns prodlots from every location.
This proposal makes it context-sensitive, so that it can be limited to a subset of locations and/or products.
if we want to allow to search on empty list the syntax is `cr.execute("SELECT ... WHERE location_id = ANY(%s) AND product_id = ANY(%s) ..., (locations, products))`. Well that will return zero result so probably not what we want...