Use empty array for function.apply

IE8 doesn't allow `undefined` arguments.
Merge pull request #1 from tricknotes/ie8

Use empty array for function.apply
Use `function.call` for empty arguments
Failing test for nested loops maintaining state
Update README.md
Merge pull request #2 from tricknotes/use-call-for-empty-arguments

Use `function.call` for empty arguments
Prevent double-finally Safari bug.
Merge pull request #5 from machty/safari-double-finally

Prevent double-finally Safari bug.
Update README.md
Convert current/previousInstance to a stack
Fix `hasTimers` to release `autorun`

To check this change, I added missing test for `cancelTimers`.
Merge pull request #9 from tricknotes/fix-has-timers

Fix `hasTimers` to release `autorun`
Merge pull request #3 from endash/nesting

Failing test for nested loops maintaining state
add more assertions before and after nested run loop
Fix to release `laterTimer` and `laterTimerExpiresAt`

The test for `setTimeout` is often gone away.
This cause is that `laterTimer` is left but tiemr is not schedueld.
Fix test to use wait time

`Backburner#setTimeout` requires wait time.
Merge pull request #11 from tricknotes/fix-to-use-wait-time

Fix test to use wait time
Merge pull request #10 from tricknotes/fix-to-release-later-timer

Fix to release `laterTimer` and `laterTimerExpiresAt`
Support npm script for test

I supported `npm test` to run tests for cli.
Merge pull request #12 from tricknotes/npm-test

Support npm script for test