Support private (Opacus) training of BART by altering BartLearnedPositionalEmbedding's forward method
### Feature request

Alter the signature of `BartLearnedPositionalEmbedding`'s forward method to take a `torch.Tensor` instead of `torch.Size` input.

### Motivation

This will support private fine-tuning of BART via DP-SGD in Opacus. To use Opacus on a custom `nn.Module` like `BartLearnedPositionalEmbedding` there is a fairly reasonable assumption that layers take tensors as input. This assumption falls over with `BartLearnedPositionalEmbedding` since it take a `torch.Shape` input instead.

In particular, `opacus/grad_sample/grad_sample_module.py`  line 190 (the `capture_activations_hook` method) tries to detach the input from device via:

`module.activations.append(forward_input[0].detach())`

If we pass the tensor instead, we can start fine-tuning BART-type summarization models with differential privacy.

### Your contribution

A few lines of code need to be changed in `modeling_bart.py`. In particular, the `forward` signature of `BartLearnedPositionalEmbedding.forward()` and references to this method.

I already have a change with BART-related tests passing. More than happy to create a PR :)
This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) are likely to be ignored.