Native AMP effectively broken when rewriting the optimizer_step function
🐛 Bug
If I turn on the native AMP (--precision 16) and modify optimizer_step like it's recommended in the docs (https://pytorch-lightning.readthedocs.io/en/latest/optimizers.html#step-optimizers-at-arbitrary-intervals), the training stops converging. The issue is caused by 
  
    
      pytorch-lightning/pytorch_lightning/core/lightning.py
    
    
         Line 1229
      in
      e81707b
    
  
  
    

        
          
           self.trainer.scaler.step(optimizer) 
        
    
  

 not being called since the entire LightningModule.optimizer_step function is getting overridden.
To Reproduce
Turn on native AMP and overwrite optimizer_step function (can be with "default" implementation from the docs) and start training. NANs should appear given complex enough network.
Expected behavior
The training should converge correctly.
Additional context
It appears that #1759 has not properly been fixed. I had encountered this bug trying to hotfix #4524.
I'm not sure what a correct fix is, my guess is either 1) a proper support for closures in AMP (possibly with some type of middleware) or 2) disabling the possibility of overwriting optimizer_step when using automatic optimization completely. One way or another, the solution will probably have to deal with #4524 and this bug at the same time.