[Soc2014] Official meta API

The existence of this flag is a code smell. It's marginally acceptable that it is referenced in the admin, but IMO it's not acceptable that it is referenced two places in core Django code (in `db/models/options.py` and `db/models/sql/query.py`).

Semantically, checking this flag is entirely equivalent to importing `GenericForeignKey` and doing an `isinstance` check, but we forbid imports from contrib in core. Using this workaround to make it technically not an import doesn't make it any better.

It seems we need to figure out what category of fields should really be excluded in the places where you are currently checking this flag, and then check for a flag representing that generic category instead (and that flag should then be part of the core `FieldFlagsMixin` so checking it doesn't require `getattr` or `hasattr`).