Use a channel to send messages via workers

Right now, a new goroutine is spawned for every log entry. This won't scale. Instead, a channel should be used to send messages to a set of workers.

Edited by Erick Hitter