Observer#asObserver implementation and tests
Added the InvalidOperationException that is thrown on re-entering an observer when it is closed