Add $timeout option to delay waypoint being set

I had an issue with a project where there was a lot of dynamic content (images, text) that was loaded in after the initial page load. Had a waypoint at the bottom of the page template that was being set immediately, before final page height was known, thus my waypoint would be fired early. $timeout added to give developer some control over when the waypoint will be set, per use if the directive.

Thought might become a handy option for the plugin, although my situation could very well be an edge case.
@chrispaynter Some of these changed lines are due to formatting changes to the file.  Could you update the PR to only include changes that introduce the `$timeout` service?