adding dynamic categorical feature option
# What does this PR do?

Adding dynamic categorical feature to time_series_transformer
// Have not tested yet!
awesome @guyko81 will have a look! this will be great!
<|||||>@kashif can you help me please?
when I try to add the variables based on the example I struggle getting the dynamic_categorical_features split into past and future values.
When I add it to the time features
```
def create_instance_splitter(
    config: PretrainedConfig,
    mode: str,
    train_sampler: Optional[InstanceSampler] = None,
    validation_sampler: Optional[InstanceSampler] = None,
) -> Transformation:
    assert mode in ["train", "validation", "test"]

    instance_sampler = {
        "train": train_sampler
        or ExpectedNumInstanceSampler(
            num_instances=1.0, min_future=config.prediction_length
        ),
        "validation": validation_sampler
        or ValidationSplitSampler(min_future=config.prediction_length),
        "test": TestSplitSampler(),
    }[mode]

    return InstanceSplitter(
        target_field="values",
        is_pad_field=FieldName.IS_PAD,
        start_field=FieldName.START,
        forecast_start_field=FieldName.FORECAST_START,
        instance_sampler=instance_sampler,
        past_length=config.context_length + max(config.lags_sequence),
        future_length=config.prediction_length,
        time_series_fields=["time_features", "observed_mask", "dynamic_categorical_features"],
    )
```
and use it like this:
```
    if config.num_dynamic_categorical_features > 0:
        PREDICTION_INPUT_NAMES.append("past_dynamic_categorical_features")
        PREDICTION_INPUT_NAMES.append("future_dynamic_categorical_features")
```
I got a shape error:
```
RuntimeError: stack expects each tensor to be equal size, but got [89, 1568] at entry 0 and [161, 1568] at entry 1
```

But when I try to simply add it like this:
```
    if config.num_dynamic_categorical_features > 0:
        PREDICTION_INPUT_NAMES.append("dynamic_categorical_features")
```
I got an error like this:
```
RuntimeError: stack expects each tensor to be equal size, but got [1568, 2] at entry 0 and [1566, 2] at entry 16
```

So the second version goes longer, however when a time series is shorter (1566 long vs 1568) it throws an error. I'm just not familiar with gluons enough to feel how to create past and future dynamic_categorical_features.
