Być może dokończyłem implementację algorytmu.

- Dodałem klasę odpowiedzialną za ekosystem
  Ekosystem składa się ze środowiska (grafu), osobników (cykli) i funkcji
  sprawdzającej przystosowanie (u mnie minus długość cyklu). Klasa ekosystem
  implementuje metodę nextGeneration, która jest wykonaniem jednego pokolenia
  symulacji, w którym krzyżują się najlepsze osobniki.
- Dodałem wyjątek EcosystemException
- Dodałem konstruktor kopiujący dla cyklu Hamiltona
- Poprawiłem działanie operatora krzyżowania (popełniał błędy)
- Inne pomniejsze poprawki