Work on genetic algorithm.

Some work has happened on the main algorithm. Added an extension
method over List<float> that takes a series of weights, and
returns a random index into an array (of the same length as the
list of weights) with probability approximate to the weight
under the given index.