AngularJS service and directive for debounce