Add scheduler.asap, port more tests

Scheduler now provides asap, so that sources can use that instead of directly relying on Promise for fast scheduling.