[Soc2014] Official meta API

Unfortunately I find that many times this is necessary (luckily, only for GFK) but I would really move away from virtual. The reason is:
My question to you: what is virtual? there is not really a clear definition inside Django core, it's more of something that builded up.
I prefer:
1. Not dividing fields into categories (data, m2m, virtual) but prefer saying "here is a field, query for it's properties".
2. Unfortunately this same thing, internally, sometimes is not possible (admin and GFK). I agree this is necessary, but the best approach to this is "one step at a time". For this reason: treat fields all the same externally, and internally make the system adapt. And then gradually change things.