rewritten with support for multi-valued events

Also modernized the code a lot and probably made it a little bit more
effective due to replacement of the expensive async-channel with a lot
more cheaper semaphores.

Introduced an incompatibility in *event-task forms argument ordering.

Signed-off-by: Jan Dvořák <mordae@anilinux.org>
added missing .gitignore

Signed-off-by: Jan Dvořák <mordae@anilinux.org>
documented the whole module

Signed-off-by: Jan Dvořák <mordae@anilinux.org>