Soc2014 meta refactor upgrade flags get field

# Main API

get_fields(m2m, data, related_m2m, related_objects, virtual,
include_parents, include_non_concrete, include_hidden, include_proxy) -> (field, field, ...)

get_field(field_name, m2m, data, related_m2m, related_objects, virtual) -> field

# Cached properties for fast access
fields -> (field, field, ..)
concrete_fields -> (field, field, ...)
local_concrete_fields -> (field, field, ...)
field_names (field_name, field_name, ..)

# Benchmarks
(compared to master)

| Benchmark Name | Control | Experiment | Diff |
| -------------- | ------- | ---------- | ---- |
| default_middleware | 0.0004300237 | 0.0004277825 | 0.0000022411 (0.52% faster) |
| form_clean | 0.0000273705 | 0.0000278950 | -0.0000005245 (1.92% slower) |
| form_create | 0.0001113892 | 0.0001106143 | 0.0000007749 (0.70% faster) |
| l10n_render | 0.0063911915 | 0.0063764930 | 0.0000146985 (0.23% faster) |
| locale_from_request | 0.0008582711 | 0.0008618593 | -0.0000035882 (0.42% slower) |
| model_creation | 0.0002637625 | 0.0002656579 | -0.0000018954 (0.72% slower) |
| model_delete | 0.0004505634 | 0.0004701018 | -0.0000195384 (4.34% slower) |
| model_save_existing | 0.0141981959 | 0.0142557144 | -0.0000575185 (0.41% slower) |
| model_save_new | 0.0142247200 | 0.0145423412 | -0.0003176212 (2.23% slower) |
| multi_value_dict | 0.0001817107 | 0.0001799226 | 0.0000017881 (0.98% faster) |
| qs_filter_chaining | 0.0008366466 | 0.0008856654 | -0.0000490189 (5.86% slower) |
| query_aggregate | 0.0003213167 | 0.0003281593 | -0.0000068426 (2.13% slower) |
| query_all | 0.0260998249 | 0.0225571513 | 0.0035426736 (13.57% faster) |
| query_all_multifield | 0.0443582535 | 0.0432800770 | 0.0010781765 (2.43% faster) |
| query_annotate | 0.0006650567 | 0.0006768107 | -0.0000117540 (1.77% slower) |
| query_complex_filter | 0.0001342654 | 0.0001360059 | -0.0000017405 (1.30% slower) |
| query_count | 0.0002347946 | 0.0002394676 | -0.0000046730 (1.99% slower) |
| query_dates | 0.0005450249 | 0.0005483866 | -0.0000033617 (0.62% slower) |
| query_delete | 0.0002664566 | 0.0002663136 | 0.0000001431 (0.05% faster) |
| query_delete_related | 0.0003523588 | 0.0003529906 | -0.0000006318 (0.18% slower) |
| query_distinct | 0.0003298879 | 0.0003300190 | -0.0000001311 (0.04% slower) |
| query_exclude | 0.0005118251 | 0.0005141139 | -0.0000022888 (0.45% slower) |
| query_exists | 0.0009323835 | 0.0009291530 | 0.0000032306 (0.35% faster) |
| query_filter | 0.0004322886 | 0.0004508257 | -0.0000185370 (4.29% slower) |
| query_get | 0.0274894714 | 0.0278315663 | -0.0003420949 (1.24% slower) |
| query_get_or_create | 0.0013071895 | 0.0013730526 | -0.0000658631 (5.04% slower) |
| query_in_bulk | 0.0005068183 | 0.0004976749 | 0.0000091434 (1.80% faster) |
| query_iterator | 0.0002911091 | 0.0002994895 | -0.0000083804 (2.88% slower) |
| query_latest | 0.0004083991 | 0.0004107714 | -0.0000023723 (0.58% slower) |
| query_none | 0.0001395822 | 0.0001393080 | 0.0000002742 (0.20% faster) |
| query_order_by | 0.0003712416 | 0.0003835917 | -0.0000123501 (3.33% slower) |
| query_prefetch_related | 0.1074403405 | 0.1080172896 | -0.0005769491 (0.54% slower) |
| query_raw | 0.0150885463 | 0.0150390387 | 0.0000495076 (0.33% faster) |
| query_raw_deferred | 0.0186030269 | 0.0188935399 | -0.0002905130 (1.56% slower) |
| query_select_related | 0.0592660189 | 0.0589864731 | 0.0002795458 (0.47% faster) |
| query_update | 0.0002349615 | 0.0002440691 | -0.0000091076 (3.88% slower) |
| query_values | 0.0003085613 | 0.0003140330 | -0.0000054717 (1.77% slower) |
| query_values_list | 0.0003025532 | 0.0003032923 | -0.0000007391 (0.24% slower) |
| raw_sql | 0.0000504494 | 0.0000519514 | -0.0000015020 (2.98% slower) |
| template_compilation | 0.0006182313 | 0.0006153345 | 0.0000028968 (0.47% faster) |
| template_render | 0.0122994900 | 0.0123975158 | -0.0000980258 (0.80% slower) |
| template_render_simple | 0.0001119375 | 0.0001112938 | 0.0000006437 (0.58% faster) |
| url_resolve | 0.0175982714 | 0.0177044988 | -0.0001062274 (0.60% slower) |
| url_resolve_flat | 0.2242750287 | 0.2279742002 | -0.0036991715 (1.65% slower) |
| url_resolve_flat_i18n_off | 0.3263444424 | 0.3096936345 | 0.0166508079 (5.10% faster) |
| url_resolve_nested | 0.0001264334 | 0.0001250267 | 0.0000014067 (1.11% faster) |

# Summed results
Sum of all performances show 0.01591951890 seconds speed increase

query_all is 13.57% faster
... and I take a look and I see the closer reason - `RelatedObject.model` already exists. So; what about the other way around; add parent_model to field? That way, you can ask every field "what model do you belong to?" and "what model are you associated with?". Normal data fields return the same model for both; RelatedObjects return different models.