Fix queue problem and cleanup.

I found that when setting the Listener the queue size was 1, which obviously
only allowed one channel at a time. Increasing the value fixed the concurrency
problem.

This patch also move the handling of Channels (new/data) to a separate function
and also it triggers the same call after a timeout of 0.5 seconds in case some
channels info get retrieved while checking the channels list.

I still need to figure out how to parse everything without the timeout.

Signed-off-by: Eduardo Silva <edsiper@gmail.com>