Optional 'once' parameter in add(Before)Observer.

The addListener already does 'once', this propagates
the flag trough the call chain upwards to addObserver methods.