Implements #18668 -- related_query_name is now a configurable field vari...

...able

This patch allows full control over both related_name and related_query_name in the ORM.
With this change, a django user can control how to access a related manager and the query
field name separately.

adding tests and fixing generic