Null out JarApplicationReader when we have generated code

Keeping this alive is keeping the big string cache alive

Change-Id: Id18f5d579c845751dc41b3feb2020f7ba0f9d669
diff --git a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
index 4d8d00d..8feed9b 100644
--- a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
+++ b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
@@ -98,7 +98,7 @@
   }
 
   private final Origin origin;
-  private final JarApplicationReader application;
+  private JarApplicationReader application;
   private CfCode code;
   protected ReparseContext context;
   private boolean reachabilitySensitive = false;
@@ -122,6 +122,8 @@
   public CfCode asCfCode() {
     if (code == null) {
       ReparseContext context = this.context;
+      JarApplicationReader application = this.application;
+      assert application != null;
       assert context != null;
       // The ClassCodeVisitor is in charge of setting this.context to null.
       try {
@@ -130,6 +132,7 @@
         for (Code code : context.codeList) {
           code.asLazyCfCode().code = null;
           code.asLazyCfCode().context = context;
+          code.asLazyCfCode().application = application;
         }
         try {
           parseCode(context, true);
@@ -155,6 +158,7 @@
     assert this.context != null;
     this.code = code;
     this.context = null;
+    this.application = null;
   }
 
   @Override