Fix #147: Split coroutine module and unify API

@sensej: You always complained that you had to use that awkward class-based averager because you could not send after yielding stopped. There you go.