Add adaptive throttling for number of slices running

Problem to solve

Zero downtime reindexing allows users to set max_slices running at the same time. However, if the system becomes overloaded there is no way to slow down or reduce number of slices and the reindexing task has a high chance of failure.

Proposal

Add adaptive throttling to the reindexing feature. If failures occur, the number of slices running should be reduced for a period of time. We can look at other spots where adaptive throttling is done (thinking background migration framework for database) to get inspiration