**Describe the issue**
ClickHouse is unable to start up after upgrading from 20.8 to 21.8. 

There is a replicated table with `:` in zk path and it couldn't be loaded with:

`2021.09.15 03:49:58.435071 [ 633075 ] {} <Error> Application: DB::Exception: Unknown auxiliary ZooKeeper name '/test_prefix'. If it's required it can be added to the section <auxiliary_zookeepers> in config.xml: Cannot attach table `db1`.`table1` from metadata file /var/lib/clickhouse/metadata/db1/table1.sql from query ATTACH TABLE db1.table1 (`field1` String, `date` Date) ENGINE = ReplicatedMergeTree('/test_prefix:db1/{shard}/table1', '{replica}') PARTITION BY toMonth(date) PRIMARY KEY field1 ORDER BY field1 SETTINGS index_granularity = 8192: while loading database `db1` from path /var/lib/clickhouse/metadata/db1
`

**Expected behavior**
ClickHouse server is able to startup after upgrade without schema change. "test_prefix" in "/test_prefix:db1/{shard}/table1" is not interpreted as an auxiliary ZooKeeper name.

{
    auto lock1 = lockForShare(query_context->getCurrentQueryId(), query_context->getSettingsRef().lock_acquire_timeout);
    auto lock2 = dest_table->lockForShare(query_context->getCurrentQueryId(), query_context->getSettingsRef().lock_acquire_timeout);
    auto dest_table_storage = std::dynamic_pointer_cast<StorageReplicatedMergeTree>(dest_table);
    if (!dest_table_storage)
        throw Exception("Table " + getStorageID().getNameForLogs() + " supports movePartitionToTable only for ReplicatedMergeTree family of table engines."
                        " Got " + dest_table->getName(), ErrorCodes::NOT_IMPLEMENTED);
    if (dest_table_storage->getStoragePolicy() != this->getStoragePolicy())
        throw Exception("Destination table " + dest_table_storage->getStorageID().getNameForLogs() +
                        " should have the same storage policy of source table " + getStorageID().getNameForLogs() + ". " +
                        getStorageID().getNameForLogs() + ": " + this->getStoragePolicy()->getName() + ", " +
                        getStorageID().getNameForLogs() + ": " + dest_table_storage->getStoragePolicy()->getName(), ErrorCodes::UNKNOWN_POLICY);
    auto dest_metadata_snapshot = dest_table->getInMemoryMetadataPtr();
    auto metadata_snapshot = getInMemoryMetadataPtr();
    Stopwatch watch;
    MergeTreeData & src_data = dest_table_storage->checkStructureAndGetMergeTreeData(*this, metadata_snapshot, dest_metadata_snapshot);
    auto src_data_id = src_data.getStorageID();
    String partition_id = getPartitionIDFromQuery(partition, query_context);
    
    auto zookeeper = getZooKeeper();
    String alter_partition_version_path = zookeeper_path + "/alter_partition_version";
    Coordination::Stat alter_partition_version_stat;
    zookeeper->get(alter_partition_version_path, &alter_partition_version_stat);
    MergeTreePartInfo drop_range;
    std::optional<EphemeralLockInZooKeeper> delimiting_block_lock;
    getFakePartCoveringAllPartsInPartition(partition_id, drop_range, delimiting_block_lock, true);
    String drop_range_fake_part_name = getPartNamePossiblyFake(format_version, drop_range);