Fixed DiffCanvas not respecting LastChangeColor settings. Minor optimizations in Canvas and DiffCanvas.
Added elements of Simulated Annealing to the mutation acceptance function. It now has a random chance (controlled by RiskRate parameter) to accept mutations that make the DNA worse overall, for the sake of "bumping" the algorithm out of local maxima. The amount of risk it's willing to take is defined as a multiple of the average mutation magnitude (controlled by RiskMargin parameter). It's kinda buggy at the moment.