[7.0] Keep tracking on do_partial when pack was not used

This improve use of pack in picking.


Here is one use case in which it helps.

You prepare a picking with a dozen of packs putting products into your packs.
For any reason, you need to deliver one pack before all others. An urgency for first pack or a delay on others.

You do a partial picking for the lone pack.
Here you will loose all tracking_id for the 11 other pack you prepared.

What we want is that tracking that have no reason to be reset are kept.


And in case you partially process a pack , this fix will also erase the tracking_id to ensure it isn't used twice

Exemple:
In a picking, you have a pack of 3 moves.
You process 2/3 moves with a partial picking.
Your 2 processed moves will have their tracking_id kept and the 3rd will have an empty tracking_id.


Here is the reason why this reset was introduced:
https://bugs.launchpad.net/openobject-addons/+bug/928191

Issue described here is about the risk of having 2 moves with same production_lot_id.
And I guess same reason for tracking_id.

In this Pull request, I take care of checking if a tracking_id has been used or not.
Context was missing there, maybe you can add it while you're touching this line?
Unless maybe it's missing on purpose? in which case it would be nicer to explicitly state context=None