Llama tokenizer add_prefix_space
Hi @sgugger 

This PR enables llama tokenizer supporting `add_prefix_space`.  

Would you please help me review it? Thanks!
The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_25278). All of your documentation changes will be reflected on that endpoint.<|||||>Hi @sgugger , I have the same request here. My problem is as follows:  

"\nObservation" is a substring of "!\nObservation", but in the encoded version by the `LlamaTokenizerFast` tokenizer, it is not the case anymore. This can be solved if we enable passing the `add_prefix_space` parameter to the tokenizer. 

Here is my code:
```python
from transformers import AutoTokenizer

model_name = 'lmsys/vicuna-13b-v1.3'
tokenizer = AutoTokenizer.from_pretrained(model_name, add_special_tokens=False, padding=True, use_fast=True)
print(tokenizer)
for stop_word in ['\nObservation', '!\nObservation']:
    print(f'++++++++++{stop_word}+++++++++++++')
    tokens = tokenizer.tokenize(stop_word, add_special_tokens=False)
    print(tokens)
    ids = tokenizer.convert_tokens_to_ids(tokens)
    print(ids) 
```

And here is the output:
```bash
You are using the default legacy behaviour of the <class 'transformers.models.llama.tokenization_llama.LlamaTokenizer'>. This means that tokens that come after special tokens will not be properly handled. We recommend you to read the related pull request available at https://github.com/huggingface/transformers/pull/24565, and set the legacy attribute accordingly.
LlamaTokenizerFast(name_or_path='lmsys/vicuna-13b-v1.3', vocab_size=32000, model_max_length=2048, is_fast=True, padding_side='right', truncation_side='right', special_tokens={'bos_token': AddedToken("<s>", rstrip=False, lstrip=False, single_word=False, normalized=True), 'eos_token': AddedToken("</s>", rstrip=False, lstrip=False, single_word=False, normalized=True), 'unk_token': AddedToken("<unk>", rstrip=False, lstrip=False, single_word=False, normalized=True), 'pad_token': '<unk>'}, clean_up_tokenization_spaces=False)
++++++++++
Observation+++++++++++++
['▁', '<0x0A>', 'Ob', 'serv', 'ation']
[29871, 13, 6039, 2140, 362]

++++++++++!
Observation+++++++++++++
['▁!', '<0x0A>', 'Ob', 'serv', 'ation']
[1738, 13, 6039, 2140, 362]
```

As you can see, [29871, 13, 6039, 2140, 362] is not a subset of [1738, 13, 6039, 2140, 362] anymore. This is because the LlamaTokenizerFast always adds a prefix space before a word. 

<|||||>cc @ArthurZucker 