Adding new tokens to GPT tokenizer
## 🐛 Bug

<!-- Important information -->

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

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

I am having saving GPT2Tokenizer when custom new tokens are added to it. Tried out two specific methods.
1. Using  special_mapping dictionary and save_vocabulary and save_pretrained method
2. Using special_mapping list and save_vocabulary and save_pretrained method

## To Reproduce
```SPECIAL_TOKENS = ["<bos>", "<eos>", "PersonA", "PersonB", "<pad>"]
tokenizer_class = GPT2Tokenizer if "gpt2" in args.model_checkpoint else OpenAIGPTTokenizer
tokenizer = tokenizer_class.from_pretrained(args.model_checkpoint,unk_token="unk_token")
tokenizer.add_tokens(SPECIAL_TOKENS)
model.resize_token_embeddings(len(tokenizer))
tokenize.save_vocabulary(filedir)
```
the above method only save the current vocab json without any of the new tokens being added. When save_vocabulary is replaced with save_pretrained(filedir) a new file called special_mappings.json is created with only 3 special tokens `{"bos_token": "<|endoftext|>", "eos_token": "<|endoftext|>", "unk_token": "unk_token"}`
## Expected behavior

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

## Environment

* OS: Ubunti
* Python version: 3.6.8
* PyTorch version:1.1
* PyTorch Transformers version (or branch):1
* Using GPU ?Yes

## Additional context
If there is anything wrong with the code, please do let me know.