Checks access to the observer for grammar violations. This includes checking for multiple
onCompleted calls, as well as reentrancy in any of the observer methods.
If a violation is detected, an Error is thrown from the offending observer method call.
(Observer): An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer.