added template parameters to OrderedCrossover class to define gene type & compare functor, added Gene::equal_to functor