Remove custom model metaclass

This PR moves the code that customizes `TranslatableModel` subclasses from the `TranslatableModelBase` metaclass into a signal handler, connected to Django's builtin `class_prepared`. It gets triggered almost at the same point, but does not conflict with other metaclass-using apps.
We are 100% sure it gets registered in time as it is in the same module as `TranslatableModel`.

Here is the detailed list of changes:
- empty out `TranslatableModelBase` and mark it as deprecated. Testcase checks that nothing is broken and a warning is thrown.
- move its `__new__` method to a `prepare_translatable_model` signal handler.
- clean up the signal handler code: running a bit later, it needs less introspection to gather required data.
- force `_base_manager` to never be an instance of `TranslationManager` or a subclass. This was actually missing from the metaclass code (*)
- move the associated `contribute_translations` out of the model, next to the signal handler. It has no business inside the model class and polluted its namespace.

Tests pass. No behavior change was expected.

(*) it has no influence as `_base_manager` would only get overriden when using `use_for_related_fields = True`, and this override only breaks if the `default_class` of the queryset is set to `TranslationQueryset`. Still, this is the correct behavior.