Issue with `decode` in the presence of special tokens
## 🐛 Bug

<!-- Important information -->

Model I am using (Bert, XLNet....): GPT-2

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

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

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

## To Reproduce


Steps to reproduce the behavior:

Run the following:

```bash
from transformers.tokenization_gpt2 import GPT2Tokenizer
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
tokenizer.add_special_tokens({"sep_token": "[SEP]"})
# this works, outputting "[SEP]"
tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(tokenizer.encode("[SEP]")))
# this fails
tokenizer.decode(tokenizer.encode("[SEP]"))
```

The last command gives this error:
```
miniconda3/envs/deepnlg/lib/python3.7/site-packages/transformers/tokenization_utils.py", line 937, in decode
    text = text.replace(self._cls_token, self._sep_token)
TypeError: replace() argument 1 must be str, not None
```
<!-- If you have a code sample, error messages, stack traces, please provide it here as well. -->

## Expected behavior

The expectation is that [SEP] is output from the `decode` function.

## Environment

* OS: OSX
* Python version: 3.7
* PyTorch version: 1.1.0
* PyTorch Transformers version (or branch): Master (2dc8cb87341223e86220516951bb4ad84f880b4a)
* Using GPU ? No
* Distributed of parallel setup ? No
* Any other relevant information:

## Additional context

<!-- Add any other context about the problem here. -->
Can't reproduce this on master now. Seems to be fixed.<|||||>Thanks a lot. It seems to be fixed. Now I get `'[SEP]'` and `' [SEP]'` consecutively with the first and the second command above. So we can close this issue.