Generation: fix TopPLogitsWarper edge case
# What does this PR do?

As raised by @ekagra-ranjan in #18976, the PT implementation for `TopPLogitsWarper` is failing in the case where the sum of the top tokens is exactly `top_p` (the current implementation adds an additional token). TF and FLAX's implementation does not suffer from this, so PT's implementation is changed to match it.

It also adds a test for the edge case, to ensure we don't regress.

Fixes #18976 
_The documentation is not available anymore as the PR was closed or merged._<|||||>Superseded by #18984 