Batch updates and inserts when renaming name and path for descendants in Route model
### Background
When there is a group with large numbers of sub-groups and projects (around 50,000), changing the path of the root group times out
### Proposal
In the `Route` model we iterate over each descendants (subgroup) and invoke a single-record `UPDATE` and a single-record `INSERT` queries. This can keep the transaction open for quite some time and it might also run into web timeout for very large groups.
Related code: https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/models/route.rb#L31
We can reduce the network round trips for single-record statements if we batch these queries, let's say invoke an `UPDATE` query and `INSERT` query for every 100 records.
Generally, batching in a transaction is discouraged however, in this case we'll see improved runtime and it's less risky than invoking single-record statements.
Benchmark the resultant performance for changing [group path](https://docs.gitlab.com/ee/user/group/manage.html#change-a-groups-path) at different numbers of subgroups (100, 1000, 50,000, 100,000),
issue