The main thing here is that the Component are in different data structure
depending on whether they are sub-component global component or repeated component
Then the properties at are the right place and there will be no more lookup
in the base. The PropertyReference knows how to access which property via which
element and such.
The idea is that it will be easier to lower from this representation than
what we currently do in each language backend.
This commit is still WIP, it is far from finished