Scala bytecode can run on top of Java VM. What is the fundamental difference between Java object.clone() and Scala object.copy()?