[examples/seq2seq] support label smoothing
# What does this PR do?

Add support for label smoothing by adding `prepare_decoder_input_ids_from_labels` method to all seq2seq models which will let us prepare `decoder_input_ids` outside the model. 

For context, we need to pass  `decoder_input_ids`  for label smoothing because we don't pass `labels`  to avoid calculating loss twice, which leads to speeds degradation, see #9713.

@sgugger , @patrickvonplaten  what do we think about adding `prepare_decoder_input_ids_from_labels` to every seq2seq model, there are already `shift_tokens_right/_shift_right` methods, but the name is a bit confusing IMO to use outside the model.
> I don't know if the shift methods are used for something else in the seq2seq methods, but if this was their only use, we could maybe deprecate them?

those are used for exactly the same reason, `prepare decoder_input_ids` by shifting `labels`, and those are mostly used inside the models, so yeah, think we could deprecate them<|||||>I agree we could remove the `pad_token_id` argument.