Fixed wrong calculations within scrollspy

In Firefox, body.scrollTop is always set to 0 - we should use dojo's position(win.body()) functionality to determine how much body was scrolled.

Additionally, maxScroll might attain a negative value; hence, Math.abs() is used on maxScroll and scrollTop (the latter since Firefox uses negative values here as well)