Repository: auth0/auth0.android
Issue: Activity com.auth0.android.provider.AuthenticationActivity has leaked ServiceConnection com.auth0.android.provider.CustomTabsController

### Describe the problem

```
ActivityThread: Activity com.auth0.android.provider.AuthenticationActivity has leaked ServiceConnection com.auth0.android.provider.CustomTabsController@4a42179 that was originally bound here
    android.app.ServiceConnectionLeaked: Activity com.auth0.android.provider.AuthenticationActivity has leaked ServiceConnection com.auth0.android.provider.CustomTabsController@4a42179 that was originally bound here
        at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1805)
        at android.app.LoadedApk.getServiceDispatcherCommon(LoadedApk.java:1677)
        at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1656)
        at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1721)
        at android.app.ContextImpl.bindService(ContextImpl.java:1650)
        at android.content.ContextWrapper.bindService(ContextWrapper.java:705)
        at androidx.browser.customtabs.CustomTabsClient.bindCustomTabsService(CustomTabsClient.java:80)
        at com.auth0.android.provider.CustomTabsController.bindService(CustomTabsController.java:72)
        at com.auth0.android.provider.AuthenticationActivity.launchAuthenticationIntent(AuthenticationActivity.kt:70)
        at com.auth0.android.provider.AuthenticationActivity.onResume(AuthenticationActivity.kt:46)
        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1446)
        at android.app.Activity.performResume(Activity.java:7939)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4195)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4237)
        at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

```
### Reproduction
Happened after updated to version 2.0.0 


- **Version of this library used:** 2.0.0


Changed files:
auth0/src/main/java/com/auth0/android/provider/CustomTabsController.java, auth0/src/test/java/com/auth0/android/provider/CustomTabsControllerTest.java

diff --git a/auth0/src/main/java/com/auth0/android/provider/CustomTabsController.java b/auth0/src/main/java/com/auth0/android/provider/CustomTabsController.java
index 4e5edde..a4d233c 100644
--- a/auth0/src/main/java/com/auth0/android/provider/CustomTabsController.java
+++ b/auth0/src/main/java/com/auth0/android/provider/CustomTabsController.java
@@ -31,7 +31,7 @@ class CustomTabsController extends CustomTabsServiceConnection {
 
     @NonNull
     private final CustomTabsOptions customTabsOptions;
-    private boolean isBound;
+    private boolean didTryToBind;
 
     @VisibleForTesting
     CustomTabsController(@NonNull Context context, @NonNull CustomTabsOptions options) {
@@ -67,11 +67,13 @@ class CustomTabsController extends CustomTabsServiceConnection {
     public void bindService() {
         Log.v(TAG, "Trying to bind the service");
         Context context = this.context.get();
-        isBound = false;
+        didTryToBind = false;
+        boolean wasBound = false;
         if (context != null && preferredPackage != null) {
-            isBound = CustomTabsClient.bindCustomTabsService(context, preferredPackage, this);
+            didTryToBind = true;
+            wasBound = CustomTabsClient.bindCustomTabsService(context, preferredPackage, this);
         }
-        Log.v(TAG, "Bind request result: " + isBound);
+        Log.v(TAG, String.format("Bind request result (%s): %s", preferredPackage, wasBound));
     }
 
     /**
@@ -80,9 +82,9 @@ class CustomTabsController extends CustomTabsServiceConnection {
     public void unbindService() {
         Log.v(TAG, "Trying to unbind the service");
         Context context = this.context.get();
-        if (isBound && context != null) {
+        if (didTryToBind && context != null) {
             context.unbindService(this);
-            isBound = false;
+            didTryToBind = false;
         }
     }
 
diff --git a/auth0/src/test/java/com/auth0/android/provider/CustomTabsControllerTest.java b/auth0/src/test/java/com/auth0/android/provider/CustomTabsControllerTest.java
index 331309a..cfc84a5 100644
--- a/auth0/src/test/java/com/auth0/android/provider/CustomTabsControllerTest.java
+++ b/auth0/src/test/java/com/auth0/android/provider/CustomTabsControllerTest.java
@@ -93,12 +93,12 @@ public class CustomTabsControllerTest {
     }
 
     @Test
-    public void shouldNotUnbindIfNotBound() throws Exception {
+    public void shouldUnbindEvenIfNotBound() throws Exception {
         bindService(controller, false);
         connectBoundService();
 
         controller.unbindService();
-        verify(context, never()).unbindService(any(ServiceConnection.class));
+        verify(context).unbindService(any(ServiceConnection.class));
     }
 
     @Test