Changed how test functions are handled, they are now objects rather than
function pointers. Slightly worse performance but can now support easy
tranformation of the solution space. No rotation yet, figure out how to
do that in a sane way later. (specify rotations about each axis?)

Updated UI stuff to allow specification of bounds, translation, scale.

Updated population classes to use new function classes.