So, I was storing a single "sd" pointer (class private data)
but using it in two different places, ie. as if it were two
different classes. Crashes happened, complaints were heard.
See T3714.
This fixes T3714
Efl.Part uses a basic inheritance for layout objects, but somehow
this completely falls apart when the child class overrides all
the functions. Weird. I'll check that more.
This touches Edje and also Elementary where part names are used.
This commit blew up in size since now all content part APIs
(get, set, unset) require to use Efl.Part instead.
This is a big refactoring commit, but no logic should
have been changed. Fingers crossed.