restructure tree_node a bit

added the tree_edge table as a join between tree_nodes and their
parents, and enabled the move_tree_node function, which moves tree_nodes
to living underneath a new parent
docstring move_tree_node