mask_tokens sometimes masks special tokens 
## 🐛 Bug

<!-- Important information -->

Model I am using (Bert, XLNet....): RoBERTa

Language I am using the model on (English, Chinese....):

The problem arise when using:
* [ ] the official example scripts: (give details) run_lm_finetuning
* [ ] my own modified scripts: (give details)

The tasks I am working on is:
* [ ] an official GLUE/SQUaD task: (give the name)
* [ ] my own task or dataset: (give details)

## To Reproduce

Steps to reproduce the behavior:

1.
2.
3.


the mask_token function in run_lm_finetuning script sometimes masks the special tokens.  This leads roberta model to throw a warning message: 
A sequence with no special tokens has been passed to the RoBERTa model. "
                           "This model requires special tokens in order to work. "
                           "Please specify add_special_tokens=True in your encoding


I would prevent the first and last tokens being masked by adding the below lines immediately after masked_indices are calculated.

masked_indices[:, 0] = False
masked_indices[:, -1] = False


<!-- If you have a code sample, error messages, stack traces, please provide it here as well. -->

## Expected behavior

<!-- A clear and concise description of what you expected to happen. -->

## Environment

* OS:
* Python version:
* PyTorch version:
* PyTorch Transformers version (or branch):
* Using GPU ?
* Distributed of parallel setup ?
* Any other relevant information:

## Additional context

<!-- Add any other context about the problem here. -->
Hi, thank you for the bug report. Indeed, this does seem problematic. I'm looking into it.<|||||>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.
