Fix nn.init.trunc_normal_ call on torch.float16 data
Following https://github.com/huggingface/transformers/pull/20803 that gave the idea, but was still buggy for some cases, for example:

```python
from transformers import ViTForMaskedImageModeling
import torch

model = ViTForMaskedImageModeling.from_pretrained('hf-internal-testing/tiny-random-vit', torch_dtype=torch.float16).to("cuda")
```

still raising `RuntimeError: "erfinv_vml_cpu" not implemented for 'Half'`.

Let me know if you would like me to add tests.
_The documentation is not available anymore as the PR was closed or merged._<|||||>@sgugger @younesbelkada Feel free to merge, it appears I have no merge rights even after approval on transformers.