Random and hopefully good changes.

I believe in this case $timeout is not a good idea... 

Debounce is useful for implementing behavior that should only happen after the input has stopped arriving. 
Since we do not want to trigger `$digest( )` cycling with delays to `func.apply( )`, I believe that `setTimeout( )` is our only reasonable option.