Change to non-blocking behavior of the receive.

Making the receive call the non-blocking part instead of the subsequent
listener matching calls. This makes the Brain a bit easier to test on
its own. We'll also get routes executing in order of when they are registered,
and multiple source triggers being the ones that come in any order.
Tests for routing.
Merge pull request #12 from brettbuddin/goroutine-fanout

Changes to Goroutine fanout