trade: new "Replace" mode for Trade Model Path scripts

Trade model path scripts does not allow to unset a category on an input
movement. To allow this while keeping backward compatibility with
existing scripts, introduce new boolean properties "{source,destination}
replace categories" that if set to True will make the trade model path
consider only dynamic categories returned by the script and will not
copy categories that might be set on the trade model path itself or on
the movement.
3 jobs for feat/trade-model-path-unset-category
in 0 seconds, using 0 compute credits, and was queued for 0 seconds