Migration to 2.8 Async version

The goal, for now, was to make the async API available, though the code is still synchronous. Making forEachAsync and mapAsync work with async functions is a sane requirement. However, MongoDB driver itself, requires forEach callback to be synchronous and uses the returned value a way to stop the iteration (source). Therefore, at least for now, I wouldn’t change it at all.

As for the observe and observeChanges methods, I don’t have the answer yet. From the top of my head, making them return not only stop but also something like isInitial flag or even initialAddsSent promise seems feasible, although I’m not sure if an entirely good approach.

As for the Blaze, I guess the problem is similar to the one in React (adds fetchAsync to useFindServer by eduwr · Pull Request #360 · meteor/react-packages · GitHub). I don’t know how to tackle that either, but you can find some ideas in the PR.