[Uniform Crossover]: Added uniform crossover operator

Added the Uniform Crossover operator, which randomly swaps genes one at a
time according to its crossover rate parameter (higher rate = more swaps).

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