Improve module_glwindow

- Hide implementation details into the cpp

This avoids the need to define LINUX to have the proper structure when
including GLWindow from another project (which can lead to unexpected
behaviors)