main loop async for 'streaming' output

using async.reduce()
setTimeout(f, 0) is to make sure output actually streams (tested in IntelliJ > Run Tools), as process.nextTick doesn't always flush buffer
Merge branch 'feature/async' of github.com:Bartvds/grunt-tslint into grunt-tslint