node-scroll-info: Fix getOnscreenNodes() and getOffscreenNodes() even harder

Despite the previous fix in 3.11.0, there were still edge cases in which onscreen/offscreen nodes within scrollable regions were not properly identified.

This time I fixed all the bugs. I promise. There are zero bugs. Cross my heart and hope to die. Unless I'm wrong, in which case there are more bugs.