Use foreground node as a click shield

[#57671280]

Firs step towards refactoring needed by cursors support. We should
have only one SVG above the canvas.
Group all viewports inside only two SVGs

[#57671280]

So there will be only one SVG in front of canvas, one behind and
additional SVG with background and gridlines.
Pass mousemove events through foreground layer to canvas

[#57671280]

Don't use real hit testing and expensive .elementFromPoint() method.

TODO FIXME: cleanup code related to events dispatching.
Move it to a separate module.
Do hit detection during mousemove in atoms-interaction, set cursors

[#57671280]