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 Two things:

* It would be preferable to execute the waypoint plugin immediately if `scope.timeout` is not set rather than letting the `$timeout` service handle it.  Even though you've specified `0` milliseconds, angular will finish the current digest cycle before executing the `$timeout` service callback, which results in a small delay.
* To accomplish the above suggestion, you'll want to move the call to `element.waypoint` to a local function and either call it or pass it to `$timeout`.  It would be preferable to define this function outside of the linking function to avoid creating a new javascript scope for every waypoint directive on the page.