Added support for crossover in GP.

This time, however, crossovers aren't limitted to local position
equivelence - any aspect of the tree can be injected anywhere else.