Implemented flow control. Without it slow consumer would cause out of memory because Fetcher would keep fetching from

potentially large queue without restraints and messages would accumulate in scheduler infinitely.
Merge remote-tracking branch 'github/master'