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
Is there any reason it needs to be a method at all? From the look of it, most fields have `get_model()`->self.model; the only exception are related objects. Can't we just put the model onto the related object, and just access `field.model`?