Make sure object life time is sufficient
Make syntax compatible with python3

- In python3 `print` is called like a function. Doctests needed to be
  adjusted.

- In python3 the syntax for capturing exceptions has changed. See:
  http://docs.python.org/3/howto/pyporting.html#capturing-the-currently-raised-exception
Call the decorated function before the event handlers

- allows to prepare a expectable state for all handlers
- enforces a common calling signature for the event
Merge branch 'coldfix/force-signature'