Wrong number of optimisation steps with tarred dataset
I noticed that when training a `TransformerLMModel` using a `TarredSentenceDataset` the number of optimisation steps is incorrect in the following case:
* Training for a maximum number of epochs (not maximum number of steps)
* Using more than 1 GPU worker
* Using `shard_strategy: scatter`

In the above case, the dataset length should be `self.metadata['num_batches'] / num_workers` below.

https://github.com/NVIDIA/NeMo/blob/fe30166a3122aefe651052e2bbdd950a842e239b/nemo/collections/nlp/data/language_modeling/sentence_dataset.py#L273

If the dataset length is not divided by the number of workers (as is now), PyTorch Lightning has a too large number of steps/epoch and no validation is performed at the end of one epoch. (PTL does not divide the total dataset length by the number of workers for `IterableDataset`s).

However, when the dataset length is calculated as `self.metadata['num_batches'] / num_workers` then there is a problem when calculating the total number of optimisation steps. When the number of optimisation steps is calculated, the dataset length is divided by the number of workers, resulting in a too low number of optimisation steps in this case.

https://github.com/NVIDIA/NeMo/blob/fe30166a3122aefe651052e2bbdd950a842e239b/nemo/core/optim/lr_scheduler.py#L857

To calculate the correct total number of optimisation steps, it should not be divided by the number of workers when we have a dataset of type `IterableDataset`, use `shard_strategy: scatter`, more than one GPU worker, and train for a maximum number of epochs.

I noticed this problem only with `TarredSentenceDataset` but I think it is also the same for other `Tarred*Dataset`s. 