Add a late throttle which calls a function at the end of the delay period

Y.throttle is all well and good, but sometimes you need a function to be throttled on the *last* event that was received, rather than the first. Since we can't guarantee that there will be another event, we have to resort to using a timer based on the throttle time.

If a subsequent call is received and the option to use the final argument was selected, the initial timer is cancelled and restarted with the new arguments.