Propagate optional 'once' parameter from add(Before)Observer.

The addListener already does 'once', so it is easy to propagate
the flag trough the call chain upwards to observer methods.