Generate: FLAX infers pad token in its absence and has functional example
# What does this PR do?

Some bug fixing in advance of #21007 (PR that adds generation config to Flax), to ensure we start from a functional flax generate codebase. 

In particular:
1. Flax now assumes the value `pad_token_id` when it is `None` and `eos_token_id` is not `None`, like TF and PT do. This is very helpful for open text generation examples, like with GPT2, was an open request (https://github.com/huggingface/transformers/issues/18884), and was one of the causes for failure in the existing example. This also includes the recent changes of #20727, where `eos_token_id` can be a list of tokens.
2. An `int32` type specification was missing in the special tokens -- when converted to JAX variables, JAX assumed they were `float32`;
3. The existing flax generate example is now part of our doctests, and runs.

_The documentation is not available anymore as the PR was closed or merged._