No way to control ID of special chars e.g. mask IDs
## Summary

Hi, many thanks for the library - this is a fantastic tool for the NLP community!

I notice there are a number of constants defined in code that the user cannot inject whilst initialising. 
Some examples are:
- `padding_idx = 1` in `RobertaEmbeddings`
- `CrossEntropyLoss(ignore_index=-1)` in `RobertaForMaskedLM`. 
- `padding_idx=0` in `BertEmbeddings`

`RobertaModel` also raises a warning if there are no tokens with index `0`, but it is not clear which control character this corresponds to.

1. Would it be a good idea to allow these parameters to be injectable so a user can control the ID of the special tokens?
2. Is it possible to provide a list of what the expected indices for special characters are?
I think for example:
```
    -1 => Ignore target during loss
    0 => `[CLS]`
    1 => `[PAD]`
```
but 0 could also be `[SEP]` as I believe both are always used in roBERTa.
Is there an index I must respect other than these? E.g. does `[SEP]` need a specific index?
3. Why is the ignore index -1? Is this just to stay true to the original papers? Wouldn't the index of the `[PAD]` token make sense? I notice this index is different in the different embedding classes.

Many thanks for your thoughts,
Dom

To answer question 2:
You can see the assumed indices for special characters by loading a tokenizer and inspecting the `vocab` attribute.

For example:
```
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
print(tokenizer.vocab)
```
This shows that for the `bert-base-uncased` model it is assumed that:

| Special Token | Index |
| --- | --- |
| [PAD] | 0 |
| [UNK] | 100 |
| [CLS] | 101 |
| [SEP] | 102 |
| [MASK] | 103 |<|||||>This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
