added hash functor to Gene class
added template parameters to EdgeRecombinationCrossover class to define gene type, hash & compare functor
added PrimitiveGenome class