Adds extra delegate method for scrolling as the result of animation

Adds an optional delegate method, which calls the delegate whenever it scrolls, as the result of self-driven animation or otherwise, and tells the delegate whether it was caused by self-driven animation or not.