dedicated StartImmediate proxy that runs the async synchronously until the first bind
eliminate unneeded cancellation checks. JS is single-threaded, WebSharper asyncs are checking cancellation more often than needed, it would be enough to check on Bind/Combine/Start
remove custom event loop and just always use JS event loop. Upside is that async stack traces become possible to debug. We have to test for performance but JS event loop should be quick too. Another possibility is to use Promises but that needs polyfill for keeping ECMAScript 5/IE compatibility.