api: Avoid initializing CallOptions.Builder fields that will be overwritten

The JIT probably cleans this up, but it is a bit confusing and needless.
diff --git a/api/src/main/java/io/grpc/CallOptions.java b/api/src/main/java/io/grpc/CallOptions.java
index 1668427..4b180c5 100644
--- a/api/src/main/java/io/grpc/CallOptions.java
+++ b/api/src/main/java/io/grpc/CallOptions.java
@@ -41,7 +41,14 @@
   /**
    * A blank {@code CallOptions} that all fields are not set.
    */
-  public static final CallOptions DEFAULT = new Builder().build();
+  public static final CallOptions DEFAULT;
+
+  static {
+    Builder b = new Builder();
+    b.customOptions = new Object[0][2];
+    b.streamTracerFactories = Collections.emptyList();
+    DEFAULT = b.build();
+  }
 
   @Nullable
   private final Deadline deadline;
@@ -92,9 +99,9 @@
     String authority;
     CallCredentials credentials;
     String compressorName;
-    Object[][] customOptions = new Object[0][2];
+    Object[][] customOptions;
     // Unmodifiable list
-    List<ClientStreamTracer.Factory> streamTracerFactories = Collections.emptyList();
+    List<ClientStreamTracer.Factory> streamTracerFactories;
     Boolean waitForReady;
     Integer maxInboundMessageSize;
     Integer maxOutboundMessageSize;