Update the prompt learning to handle large lanague model
# What does this PR do ?

Added the following features:
1.  Allow the model to load from the unpacked nemo file
2.  Remove LM model weights from optimizer
3.  It can apply various activation checkpoint optimizations to the large LM
4.  When Pytorch Lightning restore the model, the weights are in fp32 format for some reason even the checkpoint file are saved as bf16. I fix this issue by casting the floating number type to the correct precision. This saves the half of the initial GPU memory consumption. 
5.  Implement to enable the sequence parallel for p-tuning. It saves a lot of GPU activation memory by using it. Also, it enables selective activation, so it can save extra activation memory without sacrificing much performance. 
6.  Implement the Tensor Parallel version of the MLP prompt encoder, so it saves GPU memory and distributed computation in TP workgroup.
7.  Added a script to conver PTL p-tuning checkpoint files to nemo file for evaluation.
8.  Added cache capability to the prompt dataset to save the data processing time.
