Added test to make GameIterator not haveNext state when the state is finished.
Updated Main to use the new GameIterator
Removed logic analysis from GameIterator because it imposes an unnecessary limitation
Moved removed logic analysis from GameIterator to Main.
Renamed GameIterator to StateIterator
Renamed GameState to State
Renamed state variable
Renamed GameLogic to Logic
Renamed GameInteractor to Interactor
Renamed GameObserver to Observer
Moved core classes to game package
Changed Interactor interface to return a Play object (Player and Location).
Because only returning Location was complicating StateIterator (having Map<Player, Interactor> and Iterator<Player> to calculate the next state) and enables interesting Interactor implementations.