Hard coded padding index for embeddings of transformer models
**Describe the bug**

In `nemo/collections/nlp/modules/common/transformer/transformer_modules.py` a hard coded `padding_idx` is set (value 0):
https://github.com/NVIDIA/NeMo/blob/main/nemo/collections/nlp/modules/common/transformer/transformer_modules.py#L112

According to the [documentation](https://pytorch.org/docs/stable/generated/torch.nn.Embedding.html) of `nn.Embedding` this will set the respective column to zeros on initialization. Given that the padding may be at different indices for different models (i.e. tokenizers) this should be set accordingly, and not be hard coded to index 0.

I'm also not sure if the statement from the documentation holds true for NeMo trained models:
> [...] the embedding vector at padding_idx is not updated during training, [...]

as the pertained ende model (`nmt_en_de_transformer12x2.nemo`) has non-zero weights at index 0:
```
>>> checkpoint = torch.load("model_weights.ckpt", map_location="cpu")
>>> checkpoint["decoder._embedding.token_embedding.weight"][0]
tensor([-0.0071, -0.0716,  0.0123,  ...,  0.0321,  0.0360,  0.0308])
```

I could also reproduce this with a custom trained model.

**Steps/Code to reproduce bug**

1. Observe that `padding_idx` is set to a hard coded value.
2. Observe that none of the columns of the embeddings are all zeros in the pertained MTEncDec models.

**Expected behavior**

1. `padding_idx` gets set according to the index of `<pad>` in the respective tokenizer.
2. The column at `padding_idx` does not get trained/updated during training.

**Environment overview (please complete the following information)**

 - Any

**Environment details**

- Any

**Additional context**

- Potential fix: https://github.com/NVIDIA/NeMo/pull/5543
