Use channels and workers to limit feed query rate

Previously, one go routine was spawned for each feed. For high numbers of
feeds, this would use considerable resources. Limit it to 20 workers that
process incoming feeds from a channel. This had a side effect of finding
some bad code designs.