Don't pass an undefined variable to every call to new Date().

See also: tessel/runtime#221
Array.forEach is not asynchronous
tests: Clear listeners so `.end()` isn't called again on the next data event.
Fix incorrect early callback call

If an enableDataInterrupts invocation is already waiting in the queue,
another call will have its callback fired immediately, before the change
has taken place. This delays the callback until its place in the queue.
Remove broken tests that didn't previously run

Becuase `.end()` was called several extra times, the process previously
exited before the setOutputRate and setScaleRange tests ran to
completion. When allowed to run, they don't pass, and it's likely they
never have actually been run.

These tests should be fixed and re-added: Opens #21
Merge #20 r=@kevinmehall: Don't rely on setTimeout bugs + test cleanup