Little modifications, and comment all functions.
Some reorganization in order to allow sub-classing GA to implement multi objective GA
Move functions (more logical)