Fix `setTimeout` to be overridable

In Ember.js, `setTimeout` is overridden on timer tests.
But it couldn't without receiver.
Merge pull request #39 from tricknotes/overridable-set-timeout

Fix `setTimeout` to be overridable
rename debounce to throttle, as that's what it was doing
add a true debounce function to backburner
update build
#30 add the immediate flag to debounce
update test suite with debounce and throttle tests