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 animation or otherwise, and tells the delegate whether it was caused by direct user manipulation or not.