Extract FrameworkInstanceCreationExpression from FrameworkFieldSupplier, and split ProviderOrProducerFieldInitializer up into implementations of that by binding kind.

RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=180805825
diff --git a/java/dagger/internal/codegen/CodeBlocks.java b/java/dagger/internal/codegen/CodeBlocks.java
index ea3058e..ab4d90f 100644
--- a/java/dagger/internal/codegen/CodeBlocks.java
+++ b/java/dagger/internal/codegen/CodeBlocks.java
@@ -106,6 +106,11 @@
             .build());
   }
 
+  /** Returns {@code expression} cast to a type. */
+  static CodeBlock cast(CodeBlock expression, Class<?> castTo) {
+    return CodeBlock.of("($T) $L", castTo, expression);
+  }
+
   private static final class CodeBlockJoiner {
     private final String delimiter;
     private final CodeBlock.Builder builder;