Fixes GroupLogFile example early-shutdown

This is my best attempt at writing idiomatic akka-stream code.

Although I agree that it's optimal, the `buffer`, `mapAsyncUnordered`, and `foreach` feels like a lot of steps to do something as simple as "wait for all of these promises to end and then give me a future". Maybe a new method, `foreachAsync`, could help? (although, then do you implement `foreachAsyncUnordered`, also? Don't want to encourage API Cartesian explosion).

Another idea might be to add a `onComplete` method to `Source`, that yields a Try[Unit] when the stream is completed?

I was tempted to have each mapped group yield a `Future[PrintWriter]`, but yielding stateful objects through a stream felt wrong. It seemed better to have the stream close declaration close to the stream open, also, even though it ended up being more verbose.


Is this needed?