[Feature] Add an option to use custom pad token_id in `tokenizer.pad()`
# 🚀 Feature request

Adds an option to use custom pad token_id in `tokenizer.pad()`. If this option is not specified, using tokenizer-level `pad_token`.

Here is an example below::
```
input = {"input_ids": [[5, 2], [3]]}
padded = tokenizer.pad(input, pad_id=-100)

#Output: {'input_ids': [[5, 2], [3, -100]], 'attention_mask': [[1, 1], [1, 0]]}
```

## Motivation

Since `tokenizer.pad()` is a public function that can be used not only for regular tokenization but padding existing token ids, adding this option can enable additional use cases. For example, the `labels` of `BertForMaskedLM` accepts `-100` as the masked loss position, and we can thereby use the custom token_id to pad positions we don't want to calculate.

## Your contribution

I can open a PR for it.

cc @LysandreJik 

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/master/CONTRIBUTING.md) are likely to be ignored.