Proguard "Unmarshalling" error Google SIgnIn , Firebase Auth, Google Drive, In App Billing
<p>I am receiving at run time: 
Class not found when unmarshalling: com.google.android.gms.common.api.Scope and 
Class not found when unmarshalling:
com.google.android.gms.auth.api.signin.internal.SignInConfiguration
errors when creating an release version of my app.<br>
My build.gradle</p>

<pre><code>          minSdkVersion 21
        targetSdkVersion 23
        versionCode 10
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
}
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        testCompile 'junit:junit:4.12'
        // compile 'com.googlecode.java-diff-utils:diffutils:1.3.0   (This is inside primke)'
        compile 'com.github.thorbenprimke:realm-recyclerview:0.9.20'
        compile 'com.android.support:recyclerview-v7:24.0.0'
        compile 'com.android.support:design:24.0.0'
        compile 'com.android.support:support-v4:24.0.0'
        compile 'com.android.support:appcompat-v7:24.0.0'
        compile 'com.google.firebase:firebase-auth:9.0.2'
        compile 'com.google.android.gms:play-services-auth:9.0.2'
        compile 'com.android.support:cardview-v7:24.0.0'
        compile 'com.google.android.gms:play-services-drive:9.0.2'
        compile 'com.google.android.gms:play-services-gcm:9.0.2'

    }
    apply plugin: 'com.google.gms.google-services'
</code></pre>

<p>I have attempted to -keep these classes but it doesn't seem to take as the error still exists.  Perhaps it is in there twice somehow.  I keep adding things to the rule.pro file based on searches for similar problems and now have a "kitchen sink" rules file. I'm sure there is redundancy in the file and perhaps that is part of the problem.  Any assistance would be greatly appreciated.  I'm new at this so a point to examples is also appreciated. </p>

<pre><code>-keepattributes Signature
-keepattributes *Annotation*
-keep class com.google.android.gms.auth.api.signin.internal.SignInConfiguration
-keep class com.google.android.gms.common.api.Scope

-keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
    @com.google.android.gms.common.annotation.KeepName *;
}

-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

-keep interface com.google.** { *;}

-keep class * extends com.google.api.client.json.GenericJson {
*;
}
-dontwarn com.google.**
-dontwarn com.google.android.gms.**
-dontwarn com.google.android.gms.R**
-dontnote com.google.android.gms.cast.**
-dontnote com.google.android.gms.common.**
-dontnote com.google.android.gms.dynamic.**
-dontnote com.google.android.gms.internal.**
# Keep all enum values and valueOf methods. See
# http://proguard.sourceforge.net/index.html#manual/examples.html
# for the reason for this. Also, see http://crbug.com/248037.
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
# Preserve sufficient information for simple Serializable classes.
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}
-keep class com.android.vending.billing.**
-keep public class com.google.android.gms.**


-keep class com.google.** {*;}
-keep class com.newrelic.** {*;}
-keep class com.google.android.gms.auth.*
-keep class com.google.android.gms.auth.api.Auth
-keep class com.google.android.gms.auth.api.signin.GoogleSignInAccount
-keep class com.google.android.gms.auth.api.signin.GoogleSignInOptions
-keep class com.google.android.gms.auth.api.signin.GoogleSignInResult
-keep class com.google.android.gms.common.ConnectionResult
-keep class com.google.android.gms.common.GoogleApiAvailability
-keep class com.google.android.gms.common.Scopes
-keep class com.google.android.gms.common.SignInButton
-keep class com.google.android.gms.common.api.GoogleApiClient
-keep class com.google.android.gms.common.api.OptionalPendingResult
-keep class com.google.android.gms.common.api.ResultCallback
-keep class com.google.android.gms.common.api.Status
-keep class com.google.api.services.drive.**
-keep class com.google.android.gms.drive.Drive
-keep class com.google.android.gms.drive.DriveApi
-keep class com.google.android.gms.drive.DriveContents
-keep class com.google.android.gms.drive.DriveFile
-keep class com.google.android.gms.drive.DriveFolder
-keep class com.google.android.gms.tasks.OnCompleteListener
-keep class com.google.android.gms.tasks.Task
-keep class com.google.firebase.auth.AuthResult
-keep class com.google.firebase.auth.FirebaseAuth
-keep class com.google.firebase.auth.FirebaseUser
-keep class com.google.firebase.auth.GoogleAuthProvider
-keep class com.google.firebase.auth.AuthCredential
</code></pre>

<p>Here's my build.gradle</p>

<pre><code>      dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        classpath "io.realm:realm-gradle-plugin:1.0.1"
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
        maven { url "https://jitpack.io" }
        mavenLocal()}
    }
</code></pre>

<p>I thought that maybe I could use the Jack and Jill method but ran into <a href="https://code.google.com/p/android/issues/detail?id=203850" rel="nofollow">Complier error</a> so I quit there.  Suggestions or Solutions?</p>