[ASR] Use a subset of manifest when using `scatter` shard strategy
# What does this PR do ?

When using `shard_strategy='scatter'` this PR loads only a subset of lines from the manifest file.
This may reduce the time to process a manifest file by an order of magnitude.

Opening as a draft to get feedback if there are any underlying assumptions which may be broken by this change.

**Collection**: ASR

# Changelog 
| File                      | Change |
| ---------------- | -------- |
| `manifest.py::item_iter` | Load only a subset of lines if `shard_strategy == 'scatter'` |
| `collections.py:: ASRAudioText ` | forward `shard_strategy`, `global_rank` and `world_size` to `manifest.item_iter`  |
| `collections.py:: AudioText ` | Use rank and world size to restore the original data list length for `shard_strategy='scatter'` |
|  `audio_to_text.py` | forward `shard_strategy`, `global_rank` and `world_size` to `collections.ASRAudioText` |
| `utils,py` | Added a function to get number of lines from a text file |
| `test_utils.py` | Added unit test for the utility function added above |


# Before your PR is "Ready for review"
**Pre checks**:
- [x] Make sure you read and followed [Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md)
- [x] Did you write any new necessary tests?
- [ ] Did you add or update any necessary documentation?
- [ ] Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)
  - [ ] Reviewer: Does the PR have correct import guards for all optional libraries?
  
**PR Type**:
- [ ] New Feature
- [x] Bugfix
- [ ] Documentation

If you haven't finished some of the above items you can still open "Draft" PR.


## 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.

# Additional Information
* Related to # (issue)
