allow to use new options, use $evalAsync instead of timeout, destroy

3 things fixed:
 - allow to use new options, with no redefinition of default values
 - use $scope.$evalAsync instead of setTimeout or $timeout
 - destroy jQuery plugin on $destroy event (from #3)