Fixed flashing display when mouse is visible

Instead of copying the screen surface, the canvas that has been showed
last is buffered. The mouse cursor is then drawn on this buffer, which
is then shown on screen. Not only does this solve the mouse issue, I
think it is also a more time-efficient way of presentation (copying
hw-surfaces takes a lot of time!)