[NeMoMegatron] Pipeline parallelism for GPT
PR to add pipeline parallelism to GPT using fwd/bwd functions from Apex.

FP32, FP16, and BF16 are all working now.

When using pipeline parallel it is recommended to use BF16 + Megatron amp O2.
```
model.megatron_amp_O2=True
trainer.precision='bf16'
```

### TODOs
- under review

### Known issues
- complete method will be supported in a subsequent PR
- prompt tuning temporarily disabled, use NeMo 1.6 if needed
- when using tensor parallel only, we're still using sync grad all-reduce which reduces perf. Will be fixed in NeMo 1.8.

