Generate: move generation_*.py src files into generation/*.py
# What does this PR do?

Moves `generation_*.py` source files into `generation/*.py`.

I tried a few slow tests locally, no problems were raised.

⚠️ the link to the docs seems broken, can't validate their correctness 🤔 
_The documentation is not available anymore as the PR was closed or merged._<|||||>@sgugger now with `~/generation/__init__.py` populated with lazy references (as in most `__init__.py` files). 

I've updated all references to objects outside `/generation` from `generation.file_name.ObjectName` to `generation.ObjectName`, including in the docs. That does make tracking external references easier -- if an object is in `~/generation/__init__.py` it means that it is likely used somewhere else, and should be treated with extra care.<|||||>Could you please update `optimum` to reflect these changes?
```
from optimum.onnxruntime import ORTModelForSeq2SeqLM
site-packages/transformers/generation_utils.py:27: FutureWarning: Importing `GenerationMixin` from `src/transformers/generation_utils.py` is deprecated and will be removed in Transformers v5. Import as `from transformers import GenerationMixin` instead.
  FutureWarning,
```<|||||>> Could you please update `optimum` to reflect these changes?
> 
> ```
> from optimum.onnxruntime import ORTModelForSeq2SeqLM
> site-packages/transformers/generation_utils.py:27: FutureWarning: Importing `GenerationMixin` from `src/transformers/generation_utils.py` is deprecated and will be removed in Transformers v5. Import as `from transformers import GenerationMixin` instead.
>   FutureWarning,
> ```

The PR https://github.com/huggingface/optimum/pull/536 has just been merged and solves this issue.