Refactored Genotype.hpp and corresponding tests
- Genotype is now a template that can be instantiated using gene type only, or
  using custom collection. For example Genotype<int> defaults to Genotype<int, std::vector>.
  Genotype<int, std::list> is a genotype containing genes of type std::list<int>.