Do not save earlier moves if there is no cost values to save
When doing multiple stock moves, they are saved if a product has already processed. This is because the cost values depend on previous move done. But there are cases (e.g. internal moves) where no cost values is computed or modified, but we still save the moves each time the same product is processed. This may happen when doing shipment where stock move for one product has been split to add different lots. We could improve these bad cases if we save the cost values only when needed.