Better linking of inserted op into the rest of the optree.

By default restore op_next and op_sibling pointer; they are almost
surely correct this way, and if not the caller is free to fix them.
Avoid lexicals being freed in the wrong pad when destroying replaced optree.
Add function to detach an optree from its parent.