Implement support for abstract models

Self explanatory. See #44 as well.

__State before this PR:__
* abstract vanilla models can be inherited by translatable models.
* pretty much everything else breaks

__Objectives:__
* add support for translated fields on abstract models
* add support for combining translated fields from mutiple base abstract models
* provide consistent metadata about abstract models and _abstract model translations_
* maintain proxy model compatibility

The patch introduces _abstract model translations_. Those are abstract models automatically created by `create_translations_model` when given an abstract `TranslatableModel`. They hold the translatable fields, but no `language_code` and no `master` foreign key, as those would not make sense since the master is abstract.

The patch then builds the  _abstract model translations_ tree by reproducing the shared model inheritance tree (almost, models with no translated fields are skipped), and finally injects `language_code` and the `master` foreign key when it reaches a concrete model.

__Result:__
Example code is provided in [tests setup](https://github.com/KristianOellegaard/django-hvad/pull/180/files#diff-c0835c2b62d46f7470b82e953a956029R68).
This sets up a hierarchy of abstract translated models:
```
                              ┏━ AbstractAA ━ AbstractA ━ TranslatableModel
ConcreteABProxy ━ ConcreteAB ━┫
                              ┗━ AbstractB ━ TranslatableModel
```