Fix touch events

Refactored, mouse and touch events separated. There's one common function for down, move and up, which takes position (Point) of event as an argument. These points are calculated differently for touch and mouse.