fix tarred dataset len when num shards is not divisible by workers
Signed-off-by: Iztok Lebar Bajec <ilb@fri.uni-lj.si>

# What does this PR do ?

Fixes #4522. When using tarred datasets and the number of shards is not divisible by `world_size`, nemo logs a warning, but training continues. However, in this case the computation of `DataLoader.len()` becomes incorrect. This leads to invalid `lr_scheduler.max_steps`, and other issues down the road. One example being `Validation check` not running at end of epoch. 

**Collection**: [nlp]
- language_modelling
- machine_translation
- text_normalization
- token_classification

# Changelog 
In case of `shard_strategy='scatter'` the `len()` is computed based on the amount of taken shards and assuming total `num_baches` are equally distributed over all shards, i.e. that each shard contains the same number of batches. In addition, following other implementations this PR adds `shard_strategy` support to NLP/PC tarred datasets.

There are two additional occasions, where tarred datasets are used  
https://github.com/NVIDIA/NeMo/blob/fa2e55e607f787d129141523c724b29dab7a411c/nemo/collections/asr/data/audio_to_text.py#L186
which based on the implementation does not seem to be affected by this issue, and
https://github.com/NVIDIA/NeMo/blob/fa2e55e607f787d129141523c724b29dab7a411c/nemo/collections/nlp/data/language_modeling/l2r_lm_dataset.py#L169-L184
which might, but I chose to leave it as is, as the computation of `len()` 
https://github.com/NVIDIA/NeMo/blob/fa2e55e607f787d129141523c724b29dab7a411c/nemo/collections/nlp/data/language_modeling/l2r_lm_dataset.py#L239-L240
greatly differs from others
  
**PR Type**:
- [ ] New Feature
- [x] Bugfix
- [x] Documentation

## Who can review?

Anyone in the community is free to review the PR once the checks have passed. 
[Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md) contains specific people who can review PRs to various areas.
note to @PeganovAnton for NLP/C

# Additional Information
* Related to #4522
