se: Add a randomPoint() factory method
se: Add a permutePoint() method

This is to abstract common logic which may be useful for future search
algorithms, i.e. the mutation logic for genetic algorithms.
se: Add a Genetic Algorithm search method

This patch adds a GA search method, which uses tournament selection and
uniform crossover, using [x,y] coordinates as chromosomes. Mutation is
achieved by permuting points.