Improve data pipeline for punctuation capitalization model and make other useful changes
1. `PunctuationCapitalizationDataset`
  - Sort input sequences before packing them into batches to reduce padding
  -  Batching is done in `PunctuationCapitalizationDataset`, not in `DataLoader`
  -  Parallelize features creation
  -  Exclude `'input_mask'`, `'loss_mask'`, `'segment_ids'` from dataset cache. Now these arrays are created in dataset constructor
  - `PunctuationCapitalizationDataset` now yields dictionaries, not tuples
2. Tarred dataset class and instruments for tarred dataset creation.
3. Classes for punctuation and capitalization configs
4. Now parameters `max_seq_length`, `use_cache`, `num_workers`, `pin_memory`, `drop_last` can be passed in `train_ds`, `validation_ds`, `test_ds` and in these sections they have higher priority.
5. Add separate metrics for every evaluation dataset.

Closes #3125