Make use of entity resolver listeners

Create an interface for the translation entity, create an abstract
class with all the logic and let the default translation entity
extend this abstract.

This makes it possible to use other translation classes to load
additional translatable fields.