**Describe what's wrong**

`system.parts` ->  `modification_time` was not correct after move part operation.

**Does it reproduce on recent release?**

The latest release: v21.9.4.35-stable

**How to reproduce**
* Clickhouse version: v21.9.4.35-stable
* Create a MergeTree family table.
```sql
CREATE TABLE t
(
  a UInt32,
  b Date
)
ENGINE = MergeTree()
PARTITION BY b
ORDER BY b
```
* Write some data to table `t`
* Move a data part of `t` to another disk.
```sql
ALTER TABLE t MOVE PART 'part name' TO DISK 'some disk'
```
* Select part info from `system.parts`.
```sql
SELECT modification_time FROM system.parts WHERE table = 't' AND name = 'part name'
```
* We got this

|modification_time|
|:-:|
|1970-01-01 00:00:00|

**Expected behavior**
We should get the correct `modification_time` but we got '1970-01-01 00:00:00', seems that the `modification_time` had not been initialized after move part operation.
MergeTreeMovingParts & parts_to_move,
    const AllowedMovingPredicate & can_move,
    const std::lock_guard<std::mutex> & )
{
    unsigned parts_to_move_by_policy_rules = 0;
    unsigned parts_to_move_by_ttl_rules = 0;
    double parts_to_move_total_size_bytes = 0.0;
    MergeTreeData::DataPartsVector data_parts = data->getDataPartsVector();
    if (data_parts.empty())
        return false;
    std::unordered_map<DiskPtr, LargestPartsWithRequiredSize> need_to_move;
    const auto policy = data->getStoragePolicy();
    const auto & volumes = policy->getVolumes();
    if (!volumes.empty())
    {
        
        for (size_t i = 0; i != volumes.size() - 1; ++i)
        {
            for (const auto & disk : volumes[i]->getDisks())
            {
                UInt64 required_maximum_available_space = disk->getTotalSpace() * policy->getMoveFactor();
                UInt64 unreserved_space = disk->getUnreservedSpace();
                if (unreserved_space < required_maximum_available_space)
                    need_to_move.emplace(disk, required_maximum_available_space - unreserved_space);
            }
        }
    }
    time_t time_of_move = time(nullptr);
    auto metadata_snapshot = data->getInMemoryMetadataPtr();
    for (const auto & part : data_parts)