Fix Scheduler to not eagerly execute Runnables enqueued while executing other Runnables
Fix bug with throwing an Exception within a Runnable

Throwing an Exception in a Runnable no longer leaves Scheduler in an inconsistant state
 causing further Runnables to never be run.
Remove unused import in Scheduler.java
Merge pull request #1351 from ry4n1m3/fix-scheduler-919

Fix Scheduler to not eagerly execute Runnables enqueued while executing.