Issue title: CMSPlugin.get_plugin_instance performance consideration
 Issue body: In order to allow developers to use custom managers on their plugin model classes to auto-select_related related models, get_plugin_instance should probably use `plugin_class.model.objects.get(cmsplugin_ptr=self)`, since the current implementation uses `plugin_class._base_manager` (see `django.db.models.fields.related.SingleRelatedObjectDescriptor.__get__`) ignoring all custom managers. The only advantage of using the `SingleRelatedObjectDescriptor` to access the plugin instance here is that this descriptor caches the object. This could be implemented easily in our code though.

EDIT: possibly also mention in the docs how you can auto-select_related stuff

 Comments: 
 Comment 0: @ojii is this still relevant or might it be closed?
{'source': 'GithubIssues', 'repo_name_with_owner': 'django-cms/django-cms', 'issue_id': 2087494, 'repo_stars': 8944.0}