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.