Add platform abstraction layer and kwin handlers
This merge request contains the platform abstraction layer and the associated changes. It makes easy to write platform specific routines. This merge request also contains handlers to support running on KDE plasma (X11 and wayland) and deprecates support to run on any other X11 based systems.