Add few-shot in-context learning and MLP modality adapter
# What does this PR do ?

Add few-shot in-context learning for inference and MLP modality adapter.

An example of manifest is:
```
{
"audio_filepath": ["1.wav","2.wav","3.wav"], 
"duration": [1.05,1.05,2.0],
"answer": "this was her dream as nearly as she could recall it", 
"question": "Following are examples of speech audios and their transcriptions. 
    Example 1: audio is |audio|, transcription is 'I have a dream'. 
    Example 2: audio is |audio|, transcription is ' I don't have a dream'. 
    Given the following audio |audio|, transcribe the audio into words."
}
``` 
The `question` field has special audio locator strings (`|audio|` in this case) to indicate the locations of audios specified by the list of audio files in the field `audio_filepath`. In the case of multiple audios, `duration` and `offset` should also be a list of float numbers.  The program will load the three audios and insert their extracted features into the corresponding locations specified by the audio locator in the order they appear in the list. The dataset config should have a field `audio_locator: |audio|`.



**Collection**: [multimodal]

