Update scroll positions when DOM changes. Fixes #46.

To update scroll positions, a new public method is provided that can be called manually, anytime. This same method is called, automatically, by a mutation observer in browsers that support it.

(I'm far from good at setting up tests (I've just now discovered), so my huge apologies: all things "test" are not working as far as this PR goes.)
This file should be reset back to the way it was.