Goals:
- developers must only care about fibers and channels;
- crystal runtime should start 1 upto N threads;
- each thread can take & resume any fiber in the loop;
- channels as user-code sync primitives;
- also propose fiber-aware mutex/monitors;
- additional sync primitives (e.g. IO events, ...)