- some copier work needs to be improved

1. clickhouse create destionation table just once if success
2. support settings_push.replication_alter_partitions_sync =1 at attach partition 
3. ...
{
    
    bool previous_shard_is_instantly_finished = false;
    
    for (const String & partition_name : task_table.ordered_partition_names)
    {
        if (!task_table.cluster_partitions.count(partition_name))
            throw Exception("There are no expected partition " + partition_name + ". It is a bug", ErrorCodes::LOGICAL_ERROR);
        ClusterPartition & cluster_partition = task_table.cluster_partitions[partition_name];
        Stopwatch watch;
        
        TasksShard expected_shards;
        UInt64 num_failed_shards = 0;