Using Subtree Crossover Distance to Investigate Genetic Programming Dynamics