TF: XLA repetition penalty
# What does this PR do?

This PR adds our first XLA-compatible TF logit processor, as well as corresponding tests. Since this is the first of a series of small (but similar) PRs, I'd like to request a more thorough review, so the remaining ones are quick.

More specifically, this PR makes three changes:
1. Rewrites the TF repetition penalty processor so as to be XLA-compatible;
2. Adds XLA tests for the processor;
3. Since the test mentioned in 2. was a near copy/paste of the non-XLA test, I've decided to split the test into three parts to improve code reuse and reduce errors from ad hoc edits (as the first and last part can be reused in the two versions of the test, XLA and non-XLA)
    - get inputs
    - run the processor
    - check the output
_The documentation is not available anymore as the PR was closed or merged._<|||||>Thinking about it more, a multiplicative logit penalty really doesn't work, right? Even if we use the reciprocal when the logit is negative, the scale of the penalty depends on the logit's distance from 0. For example, a logit in the range -0.1 to +0.1 will barely be moved by the penalty term, but such logits usually have quite a high probability of being chosen, because most logits are large and negative.<|||||>(merging as the main goal was to port to XLA but, by all means, continue the discussion :) )