Simplify abstract actor class
Move event loop functions to its own module
Add actor with a manual event loop

This actor runs in a non-threaded loop, so it can be easier to test.
Don't remove sponsor keyword from arguments
Convert tests to use manual loop actor