Trainer track_grad_norm always results in 0
Describe the bug
The Trainer has a flag track_grad_norm which allows us to log the gradient norms to Tensorboard. This flag is checked in the run_tng_epoch function after the training step and validation step. However, the training step (__run_tng_batch) calls model.optimizer_step(), which, in the default implementation, calls optimizer.zero_grad(). This results in the tracked gradient norms to be always zero.
Moreover, there is an optional __run_evaluation call in the validatin_step. This results in a call to model.zero_grad(), which I assume will also result in zero gradient norms.
To Reproduce
Steps to reproduce the behavior:

Train a model with the track_grad_norm flag set to True and Tensorboard logging enabled
Go to Tensorboard
Check the gradient_norms

Expected behavior
The gradient norms should not always be zero.
Desktop (please complete the following information):

OS: Windows
Version 0.4.9