core: improvements for setImmediate polyfill

- try use postMessage first instead of MessageChannel as more
predictable task order in multi-sandbox mode
- make postMessage more safe across sandboxes via random generated
message
core: move asap try/finally code aside (to not call unoptimized function when no task in queue)
core: basis.teardown() implemented
demo: small fixes in TodoMVC