BertTokenizer / CamemBERTokenizer `decode` behaviour ?
Author: auroredea
Pull request: no

## 🐛 Bug

Thank you for CamemBERT, it's a great work 😃 
Model I am using (Bert, XLNet....): CamemBERT

Language I am using the model on (English, Chinese....): French

The problem arise when using:
* [ ] the official example scripts:
* [x] my own modified scripts: followed by the official documentation at https://huggingface.co/transformers/main_classes/tokenizer.html#

The tasks I am working on is:
* [ ] an official GLUE/SQUaD task:
* [x] my own task or dataset: Show the tokens from the CamemBERT tokenizer.

## To Reproduce

Steps to reproduce the behavior:

1. Tokenize (`encode`) a sentence.
2. Try to `decode` the ids but not working (`TypeError` thrown)

```
tokenizer = CamembertTokenizer.from_pretrained('camembert-base')
ids = tokenizer.encode(sentence)
print(tokenizer.decode(ids))
```
I just followed the documentation for decode which explains :
Converts a sequence of ids (integer) in a string, using the tokenizer and vocabulary with options to remove special tokens and clean up tokenization spaces. Similar to doing self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

Traceback :
```
  File "/d/Workspaces/camembert-test/main.py", line 51, in <module>
    tokens_with_transformers_error(sentence)
  File "/d/Workspaces/camembert-test/main.py", line 32, in tokens_with_transformers_error
    print(tokenizer.decode(ids))
  File "/d/Workspaces/camembert-test/.venv/lib/python3.7/site-packages/transformers/tokenization_utils.py", line 1187, in decode
    sub_texts.append(self.convert_tokens_to_string(current_sub_text))
  File "/d/Workspaces/camembert-test/.venv/lib/python3.7/site-packages/transformers/tokenization_utils.py", line 1156, in convert_tokens_to_string
    return ' '.join(self.convert_ids_to_tokens(tokens))
  File "/d/Workspaces/camembert-test/.venv/lib/python3.7/site-packages/transformers/tokenization_utils.py", line 1145, in convert_ids_to_tokens
    tokens.append(self._convert_id_to_token(index))
  File "/d/Workspaces/camembert-test/.venv/lib/python3.7/site-packages/transformers/tokenization_camembert.py", line 146, in _convert_id_to_token
    return self.sp_model.IdToPiece(index - self.fairseq_offset)
TypeError: unsupported operand type(s) for -: 'str' and 'int'
```
Here, convert_tokens_to_string seems to call convert_ids_to_tokens ? Why ?

## Expected behavior

Have the same return statement (or anything else) as this code which seems to works but don't have to...? I am not sure though 😃 
```
    tokenizer = CamembertTokenizer.from_pretrained('camembert-base')
    ids = tokenizer.encode(sentence)
    print(tokenizer.convert_tokens_to_string(ids)) # I give list of ids, not list of tokens
```

## Environment

* OS: Linux
* Python version: 3.7
* PyTorch version: 1.3.1
* PyTorch Transformers version (or branch): 2.2.2
* Using GPU ? no
* Distributed of parallel setup ? no
* Any other relevant information: /

## Additional context

<!-- Add any other context about the problem here. -->


Comments:
> tokenizer.decode(ids)

I've made some tests, and this problem occurs also with `BertTokenizer`.


Should be fixed by #2244, can you check that you get the expected behaviour on master?

Thanks!

I confirm with the version with the merge commit and new version 2.3.0, it works.
Thank you !

Thanks for checking!