Refactor|libgui|Client: Mouse and keyboard input routing

ClientWindow now listens to the input notifications from its Canvas
and submits appropriate input events. Canvas was further isolated
from concrete implementation of mouse trapping (which will be done
by an input driver).