Another small stab at unifying property handling in libnm.
We have property meta data (
NMSettInfoProperty) for how to handle properties. On top of that, we have virtual functions in
NMSettingClass. Also, keyfile has its own vtables.
How a property is handled is spread out to various places. Also, the function pointers in
NMSettInfoProperty have non-obvious interactions. They got called at multiple times, and the caller had to take care about to call the right function. Try to improve that a bit.
Also, save the unnecessary calls for
variant_type_for_gtype() all the time. We can cache the result.