Refactor regression_test to use test_common
Refactor crossover_test to use test_common
Modify define for all header files

Instead of a single underscore before and after the header define, there
are now to underscores. e.g.

Before:

    _HEADER_H_

Now:

    __HEADER_H__
Move data struct functions from config to population config
Minor refactor