Implement message queue events.

I'm not sure if I want them to be workq_jobs or std::function objects.
Might change that in the future, dunno...