Move Abstract.__call__ method to AbstractEncoder

This makes its subclasses such as DeepComposedAutoencder work correctly