fix for Chrome's issue with insertBefore and animations stopping
add a new option "shouldUseIntersectionObserver" to allow users to opt-out of using the intersection observer
uses a single instance of the intersection observer, because there is a big performance difference between using one per instance, and one for all elements.
this PR addresses three issues: