Grouped query attention support
# What does this PR do ?

Support grouped query attention for language modelling, with torch attention and flash attention 2.

**Collection**: NLP

# Changelog 
Support grouped query attention for language modelling, with torch attention and flash attention 2.
- Added parameter parse to enable GQA for gpt like models (change in nemo/collections/nlp/models/language_modeling/megatron_gpt_model.py, nemo/collections/nlp/models/language_modeling/megatron/gpt_model.py)
- Added support for grouped query attention for language modeling (change in nemo/collections/nlp/modules/common/megatron/language_model.py, nemo/collections/nlp/modules/common/megatron/transformer.py, nemo/collections/nlp/modules/common/megatron/attention.py)
- Not implemented for flash attention triton yet, as it is marked as experimental
- Not implemented for xpos yet, as it is marked as experimental


# Usage
Configure num_kv_attention_heads in model config yaml file, e.g. add in examples/nlp/language_modeling/conf/megatron_gpt_config.yaml, in model configuration.

num_kv_attention_heads is optional configuraiton, if not configured or configured same as num_attention_heads, the existing multi head attention will be used instead. 

Requires num_attention_heads as same or multiple of num_kv_attention_heads (same -> multi head attention), num_kv_attention_heads as same or multiple of tensor_model_parallel_size. 

Same convention as flash attention, e.g. if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head 0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.

# 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


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

