More genetic fun.

First, added warning ignore for no GetHashCode() in PathFinder because
it was bothering me.

Due to a little out of order happenings when running the genetic
algorithm, I added a clone values function to VictimData, which takes
another VictimData class and copies all the values from this other
object into itself.

I believe that I have finished the main part of the algorithm, except
there is an issue early on, which I haven't been able to resolve.
(Line 245, null argument to be specific)
Fixed null argument bug.

Forgot to initialize the variable on the first time through.
Fixed ordering mistake.
Fixed for random number when picking parent value.

Apparently, Range(float) is inclusive of its upper bounds,
but Range(int) is exclusive, so that's been fixed now.
Genetic is pretty much done.

Need to add mutations.

It definitely needs to be tested more than my limited testing
and won't really show much until we add in the ability to do damage
(by which I mean I need to figure out how it's being done and track it)
because for now the fitness is pretty boring, just time alive.