Instead, C4IDs are converted from/to C4PropLists. This will have to change,
of course.
Objects can be created from prototypes which only inherit from C4Def
The DefCore was only used by the editor and to get an id from a filename
for the drag and drop code. The former is dead, the latter does not need
the separation.
This is mainly intended to fill the proplist of the definition and replace
the defcore, but other one time initialisation could also be done at that
point.
This saves some typing and better reflects the role of the object:
It's no longer the list of strings that has to be saved in the savegame,
but is only used to ensure that no string is duplicated.
A Proplist is a map of C4Strings to C4Values which can chain lookups
to "Prototype" Proplists. This can be used to implement inheritance.
Proplists can be stored in C4Values.
C4Object now inherits from C4Proplist, C4Values can be converted between
those two.