Inserts a child before the reference child.
You could use {@link #setParent} or {@link #appendChild}instead of this method, unless you want to control where to put the child.
Note: {@link #setParent} always calls back {@link #insertBefore}and/or {@link #removeChild}, while {@link #insertBefore} and {@link #removeChild}always calls back {@link #setParent}, if the parent is changed. Thus, you don't need to override both {@link #insertBefore} and {@link #setParent}, if you want to customize the behavior.
@param newChild the new child to be inserted.
@param refChild the child before which you want the new childbeing inserted. If null, the new child is append to the end.
@return true if newChild is added successfully or moved;false if it already has the specified child and the order doesn't change.