Fix `TFSwinSelfAttention` to have relative position index as non-trainable weight
# What does this PR do?

This PR fixes `TFSwinSelfAttention` to have `relative_position_index` as non-trainable weight.

## Problem

When trying to convert `SwinModel` to `TFSwinModel` by using `TFSwinModel.from_pretrained(weight_path, config, from_pt=True)`, I faced the warning below:

```
Some weights of the PyTorch model were not used when initializing the TF 2.0 model TFSwinModel:
['encoder.layers.2.blocks.0.attention.self.relative_position_index',
'encoder.layers.2.blocks.1.attention.self.relative_position_index',
'encoder.layers.2.blocks.6.attention.self.relative_position_index',
'encoder.layers.2.blocks.7.attention.self.relative_position_index', ...
```

**I checked that `SwinModel` has those keys on its weight while `TFSwinModel` hasn't.** `SwinModel` assigned this value as non-trainable weight by using `self.register_buffer`, but on `TFSwinModel` it was just assigned as class members (`self.relative_position_index = tf.reduce_sum(...)`).

## Fix

I added `relative_position_index` as non-trainable parameter by using `self.add_weight` on `build()`, so that `relative_position_index` can have proper key name on `model.weights` list. I checked the conversion that I failed is successfully done after applying this fix.

I also tried to just change `self.relative_position_index` to `tf.Variable(..., trainable=False)`, but It didn't work due to the key name. This will set key name as `relative_position_index:0`, not like `tf_swin_model/swin/encoder/layers.0/.../self/relative_position_index:0`.

## Review

This PR is related with Swin Transformer and TensorFlow.
TensorFlow: @LysandreJik
_The documentation is not available anymore as the PR was closed or merged._<|||||>@sgugger Adding you for a final TF review before merging