Create a simple unit test for adding coroutines as actions

This unit test demonstrates the way want to be able to add coroutines
as actions, which we will use as a blueprint for the implementation.
Accept non-dead coroutines as actions

We do not accept dead coroutines since it logically makes no sense to
give an event an action that it can never execute.
Add unit tests for removing actions that are coroutines
Teach Luvent:trigger() how to call actions that are coroutines

This patch begins by factoring out some code from trigger() into a new
private function: invokeAction().  This function is where we actually
call an action; it takes care of the differences between calling a
normal function and resuming a coroutine.  The function also returns a
boolean that indicates whether or not we can execute that action
again at a later time.  The only time the function returns false is
when the action is a coroutine that becomes dead after invocation.

The patch then restructures trigger() so that it defers invocation to
the new function while also removing actions based on the return value
of the invokeAction() function.  Again, this situation occurs only
when we run a coroutine that dies, in which case trigger() will remove
the action from the event so that we will not cause an error later by
attempting to resume a dead coroutine.
README: Mention support for coroutines as actions
Add a unit test for using coroutines that yield as actions
README: Add an example of using coroutines for actions