Automatically setting number of LSH buckets in Reformer may give invalid value
# 🐛 Bug

## Information

Model I am using (Bert, XLNet ...): Reformer
transformers version: 2.9.0

When using a Reformer model such that `config.num_buckets` is set to `None` (as recommended), the model automatically determines the number of necessary buckets. However, depending on some hyperparameters, it may compute an odd number of buckets, which is invalid.

It happens at this line, because of the +1 in the second element:
https://github.com/huggingface/transformers/blob/a34a9896ac2a4a33ff9cd805c76eed914c8d8965/src/transformers/modeling_reformer.py#L541

This triggers the assertion in `_hash_vectors`: https://github.com/huggingface/transformers/blob/a34a9896ac2a4a33ff9cd805c76eed914c8d8965/src/transformers/modeling_reformer.py#L454


I think a simple fix is just to check if the number is odd, and add one in that case.
Hi @erickrf, 

Thanks a lot for catching the error. The linked PR should solve it by making sure `num_buckets` is always a power of 2.