duplicate() function does not set the IDs of descendants
Currently, the duplicate() function does not do anything to the children of the object duplicated. Obviously this can be done manually, but if the goal is to mimic the native Duplicate function, then any descendants of the object should also have their IDs randomized.