Simplified IGeneticAlgorithm
TFitnessFunction type parameter excluded
Target framework is changed to .Net 4.5
Intensive use of IReadOnlyList instead of IList
Revert "TFitnessFunction type parameter excluded"

This reverts commit 141b77a056b3ab17e19b87d765629650ed1ca4b4.

Large refactorings targeting to remove generics over use