Add exec() with full async support.

This is the first module function that uses the async support from core - in "sleeps" in async reactor until data in available (for stdout), allowing other tasks to be handled in the mean while by the process.