Fixed #23615 -- Validate that a Model instance's "check" attribute is a ...

...method.

The "check" name is a reserved word used by Django's Check framework,
and cannot be redefined as something else other than a method, or the Check
framework will raise an exception.

This change amends the django.core.checks.model_check.check_all_models()
function, so that it verifies that a model instance's attribute "check"
is actually a method, before calling it and collecting the error
messages.

A test is also provided, and this specific violation is documented and assigned
the id "fields.E008".

This fixes https://code.djangoproject.com/ticket/23615
I've merged and backported a5c77417a651c93036cf963e6da518653115be7e. It doesn't introduce any backwards incompatibility and just replace the crash with a more helpful `Error`.

Now regarding documentation, I think we should improve https://github.com/django/django/blob/master/docs/releases/1.7.txt#L1440-L1443. Since our docs are built from HEAD we can do that without delaying 1.7.1.

Regarding master, I'm not too sure about the best strategy going forward.