Initial crossover implementation

Works, but a bit too strict.. (only swaps AST nodes of the same type)