Add option for overriding scheduler step
🚀 Feature

Motivation
Currently there is no way to overide the scheduler.step().  scheduler.step() calls for all the schedulers are called sequentially i.e,
for scheduler in schedulers:
    scheduler.step()
There should be something a hook that enables to override the scheduler.step() call something similar to the existing hook for optimizers LightningModule.optimizer_step()
Pitch
something similar to :
def scheduler_step(self, epoch, batch_idx, scheduler, scheduler_idx, *args, **kwargs)
    if scheduler_idx == 0:
       ....   # do something
       scheduler.step()
    
    if scheduler_idx == 1:
       ....   # do something here
       scheduler.step()
 ....