prepare code organization to allow for input handling to be added
prepare input handling with a newt window
always use same gl context from render thread
begin implementing mouse movement input
add convenience method to retrieve the first resource object of a protocol object
continue implementing pointer movement handling
implement clean pointer input movement handling
properly report enter and motion events to clients
reformat code
reorganise code layout
reorganise code layout
Merge remote-tracking branch 'origin/input_handling' into input_handling

* origin/input_handling:
  reorganise code layout
implement button handling
make jobexecutor correctly handle pipe reads
reformat code
make job executor not execute all jobs if there's a finished event in between