Added garbageCollect to timeout.js

When using timeout, it may be useful to have a function that is called when the timeout occurs to cleanup any variables, instances, etc before the reject call is run.

I'll add another commit with the doc changes in a minute