EffectWindow proxies its properties from the client/deleted's properties.
QObject::property(char*) is a slow string search. It's a loop
not a hash lookup!
QML is different, there's a property cache.
It's fetched multiple times for every window in every paint of some
effects (such as blur).
Hotspot showed it as 5% of the standard render pass (X11) with nothing
in kwin animating.
This patch replaces the macro that does parent()->property("propertyName")
with a macro calling the relevant function directly without metaobjects.
All custom proprties on deleted have to be moved to virtual's on the toplevel.