list: do not use IntersectionObserver to reduce CPU usage
list: do not use IntersectionObserver to reduce CPU usage

Switch back to a custom spinner detection, as the IntersectionObserver
is eating a lot of CPU resources on idle.

This should also take care of #2250 properly: the previous `onDestroyed()`
was removing the resize and scroll callbacks, but they were not unique
enough, and they were shared across swimlanes. So if a list had 2 swimlanes
with spinners, when one was removed, the other was not triggering its
callbacks anymore.

Related: #2294

wekan/wekan,GhassenRjab/wekan,wekan/wekan,wekan/wekan,GhassenRjab/wekan,wekan/wekan,GhassenRjab/wekan,wekan/wekan