Fix FileAlreadyExistsException when running coverage with RBE (#1307)

* copy java_tools fix

see https://github.com/bazelbuild/bazel/pull/25273/files#diff-0bfb7f2e6bab3020f410f5ee9ec45ddcef952455f814c6510f72c5ef1300542fL113

* fix formatting
diff --git a/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/JacocoInstrumentation.kt b/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/JacocoInstrumentation.kt
index 28ef1a0..29606bb 100644
--- a/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/JacocoInstrumentation.kt
+++ b/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/JacocoInstrumentation.kt
@@ -10,6 +10,7 @@
 import java.nio.file.Path
 import java.nio.file.Paths
 import java.nio.file.SimpleFileVisitor
+import java.nio.file.StandardOpenOption
 import java.nio.file.attribute.BasicFileAttributes
 
 internal fun JvmCompilationTask.createCoverageInstrumentedJar() {
@@ -68,12 +69,15 @@
         val uninstrumentedCopy = metadataDir.resolve(root.relativize(absoluteUninstrumentedCopy))
 
         Files.createDirectories(uninstrumentedCopy.parent)
-        Files.move(file, uninstrumentedCopy)
+        Files.copy(file, uninstrumentedCopy)
 
         Files.newInputStream(uninstrumentedCopy).buffered().use { input ->
-          Files.newOutputStream(file).buffered().use { output ->
-            instr.instrument(input, output, file.toString())
-          }
+          Files
+            .newOutputStream(file, StandardOpenOption.TRUNCATE_EXISTING)
+            .buffered()
+            .use { output ->
+              instr.instrument(input, output, file.toString())
+            }
         }
 
         return FileVisitResult.CONTINUE