Introduce a WindowProxy for accessing a subset of functionality

from other threads. This currently provides a way for other threads
to wakeup a blocked event loop on X11. Other platforms have stub
functions that need to be implemented. This is similar to
the functionality of glfwPostEmptyEvent.
Could you add `unimplemented!()` here?
It's better to have a panic than to struggle to understand why your code doesn't work.