Fix memory allocation of NeMo Multi-speaker Data Simulator
Signed-off-by: stevehuang52 <heh@nvidia.com>

# What does this PR do ?

Fix memory leak and improve speed of the simulator.


**Collection**: [ASR]

# Changelog 
- Fix memory leak by cleaning up buffers and variables after each session is created
- Improve speed by generating candidate speakers and their audios before launching multiprocess
- Enforce spawn as multiprocessing method
- Improve some data loading logic to avoid unnecessarily traversing the same list many times.
- Adding multi-gpu (CUDA devices) support 
- Reduced parallel processing memory usage by sampling noise source samples in advance


# 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)
- [ ] Did you write any new necessary tests?
- [x] 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
