Fix touch input coordinates when the page is scrolled.

- `getBoundingClientRect` returns a rectangle that is relative to the viewport. See: https://developer.mozilla.org/en-US/docs/Web/API/element.getBoundingClientRect#Returns
- The cached canvas location must be updated when the viewport is scrolled
- Also add a new `WINDOW_ONSCROLL` event for minpubsub

This bug was discovered when enabling the debugPanel in the platformer example; Load the game, scroll the page down (E.g. align the top of the canvas to the top of the browser viewport). Try to click the debug options. Also try with different scroll positions near the original scroll position (0,0).