Add support for before and after callbacks

This PR adds support for before and after callbacks. Both types of callbacks take the element which will be / was scrolled to. This can be useful when used as a directive.

For directives the callback function can be specified as a function which will take the element as the first and only argument, e.g., `callback-before="myFunction"` or as an expression in which the name `element` is bound to the scroll target, e.g., `callback-after="log('scrolled to', element)"`. In both cases the function will need to be available on the scope.

I have not recreated the minified JavaScript.