Add tests to streams.py

Not sure if this is the best way to do this.  However, since we're
using eventlet.spawn_n we can't get to the return values under testing
so I patch eventlet.spawn_n with a decorated function that just pulls
out the function from spawn_n's parameters and calls it directly.

The test class then just has to setup an instance variable and a
stream sink to use under test to collect values.  Then the tests can
just run some sample events through a given stream and check the
`processed_events` variable.