Introduce PointerMotionEvent and PointerButtonEvent
Qt input events don't work as intended. If there are two input events, one will overwrite some data of the other even though they are not really connected.
This change introduces PointerMotionEvent and PointerButtonEvent that act as the replacement for QMouseEvent.