Better fix for crossover; deprecated insert methods

Switched back to std::swap. The root of the problem was that I was
returning *this when in the target node, rather than the child when I
found it while in the parent. Now it is the correct reference and works
perfectly.