Patch memory used for NeMo Megatron models
# What does this PR do ?

Reduce the peak memory usage during model building and restoration.

**Collection**: [NLP]

# Changelog 
- Force state dict onto CPU during restoration
- Add param_dtype in multiple places to correctly build tensor with trainer.precision dtype


# 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?
- [ ] 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**:
- [x] New Feature
- [ ] Bugfix
- [ ] Documentation
