EventChain takes a context parameter.

All callbacks are invoked with the context. If none is given then it
works the same as it worked before.

Fixes #3.