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.