implemented abstract X property caches + wm_name & wm_protocols caches