Refactor internals for Trainer push_to_hub
# What does this PR do?

This PR refactors the internals of the `Trainer` integration with the hub to use a `Repository` object instead of relying on the `PushToHubMixin` (which will get simplified drastically soon, see https://github.com/huggingface/huggingface_hub/pull/321).

In passing, to get closer to the way `Repository` works, the `push_to_hub_model_id` and `push_to_hub_organization` are both deprecated in favor of `hub_model_id`, which should contain the full ID of the model (either username/model_name or organization/model_name). `push_to_hub_token` is deprecated in favor of `hub_token`, which is easier.

Tests are adapted to use those new arg names, but otherwise there is no breaking change.