chore(scrollspy): refactor directive, drop prototypes