Move Observers to separate directory.
Add base ObserverState class.
Add state class for DirectoryObserver.
Fix typo in name of method getDirectory().
Add ObserverCreator class.
Add test on creation of DirectoryObserver from state.