[Crossover]: Fleshed out 2-point crossover, and reworked base class

Reworked the base class some, so it does its job better, and fleshed out the
two-point crossover operator some more, so it actually does what it's
supposed to.

Signed-off-by: Sebastian Lenartowicz <slenarto@uoguelph.ca>
[MutationOperation]: Reworked the MutationOperation base class

Reworked the base class for mutations, to make overriding the seed possible
and to unify the structure with the CrossoverOperation class.

Signed-off-by: Sebastian Lenartowicz <slenarto@uoguelph.ca>
[Mutation]: Wrote bitwise mutation operator and reworked base class

Wrote the bitwise operator (which changes the ints in the genome one-by-one,
as determined randomly), and tweaked the base class some more to make it
reflect the necessities discovered while writing the bitwise operator.

Signed-off-by: Sebastian Lenartowicz <slenarto@uoguelph.ca>