Validate state of iterator.
Move inline method isValid() to header.
Make interface of ObserverClient more correct.
Create ObserverMediator from state instead of type.
Add the first test of ObserverMediator.

It contains ObserverClient implementation for testing.