XLNetTokenizerFast conversion fails with identity normalization in Sentencepiece tokenizer
Author: shahad-mahmud
Pull request: no

### System Info

- `transformers` version: 4.25.1
- Platform: Linux-5.19.0-46-generic-x86_64-with-glibc2.17
- Python version: 3.8.13
- Huggingface_hub version: 0.15.1
- PyTorch version (GPU?): 1.12.1+cu102 (False)
- Tensorflow version (GPU?): not installed (NA)
- Flax version (CPU?/GPU?/TPU?): 0.6.3 (cpu)
- Jax version: 0.4.1
- JaxLib version: 0.4.1
- Using GPU in script?: No
- Using distributed or parallel set-up in script?: No

### Who can help?

@ArthurZ

### Information

- [ ] The official example scripts
- [ ] My own modified scripts

### Tasks

- [ ] An officially supported task in the `examples` folder (such as GLUE/SQuAD, ...)
- [ ] My own task or dataset (give details below)

### Reproduction

I was trying to initialize an XLNetTokenizerFast tokenizer using a Sentencepiece tokenizer model.  While training the Sentencepiece tokenizer, I used the `identity` normalization rule name as I did not want to normalize the texts. While initializing XLNetTokenizerFast using this Sentencepiece tokenizer, it fails and raises the following error:

```bash
Traceback (most recent call last):
  File "xlnet_tok_test.py", line 10, in <module>
    tokenizer = transformers.XLNetTokenizerFast(
  File "/home/shahad/miniconda3/envs/gen/lib/python3.8/site-packages/transformers/models/xlnet/tokenization_xlnet_fast.py", line 150, in __init__
    super().__init__(
  File "/home/shahad/miniconda3/envs/gen/lib/python3.8/site-packages/transformers/tokenization_utils_fast.py", line 118, in __init__
    fast_tokenizer = convert_slow_tokenizer(slow_tokenizer)
  File "/home/shahad/miniconda3/envs/gen/lib/python3.8/site-packages/transformers/convert_slow_tokenizer.py", line 1162, in convert_slow_tokenizer
    return converter_class(transformer_tokenizer).converted()
  File "/home/shahad/miniconda3/envs/gen/lib/python3.8/site-packages/transformers/convert_slow_tokenizer.py", line 503, in converted
    tokenizer.normalizer = self.normalizer(self.proto)
  File "/home/shahad/miniconda3/envs/gen/lib/python3.8/site-packages/transformers/convert_slow_tokenizer.py", line 786, in normalizer
    list_normalizers.append(normalizers.Precompiled(precompiled_charsmap))
Exception: Error while attempting to build Precompiled normalizer: Cannot parse precompiled_charsmap
```

However, I can successfully initialize XLNetTokenizerFast when the Sentencepiece tokenizer is trained with `nfkc` or the default `nmt_nfkc` normalization rule.

This bug can be reproduces using the following colab notebook:
https://colab.research.google.com/drive/1kj17NAP3xn22MEwp_96eNBLYg5d5np9u?usp=sharing

### Expected behavior

The XLNetTokenizerFast should be initialized without any error.

Comments:
To my mind, the bug can be fixed with a checking of the precompiled charmap like the following code snippet:

```python
precompiled_charsmap = proto.normalizer_spec.precompiled_charsmap
        
if precompiled_charsmap:
    list_normalizers.append(normalizers.Precompiled(precompiled_charsmap))
```

I am creating a pull request with this checking.