Fix automatically directing the user to the captive portal in Wi-Fi Slice

The feature failed after the CL "Force the adapter to rebind cards with
a toggle".

Because toggle slices have been forced to rebind after starting another
activity and when any slice is updating. This unpins Wi-Fi slice and
stops WifiScanWorker and then clears the saved clicked network.

Solution:
1. Change ConnectToWifiHandler from activity to receiver and send
   broadcasts to it with FLAG_RECEIVER_FOREGROUND, so Wi-Fi slice won't
   be forced to rebind.
2. Seperate Wi-Fi scan worker and contextual Wi-Fi scan worker. Keep the
   original logic for the generic one, and then add the logic below to
   the contextual one.
3. Do not clear the saved clicked network when slice is unppined because
   it happens frequently in contextual homepage.
4. Introduce a static long in ContextualWifiScanWorker that updates once
   in every visible UI session. A session is when the screen is visible
   to user.
5. Use session token to determine whether auto-starting captive portal
   is needed.

Fixes: 128056349
Test: robotest, visual in homepage and network panel
Change-Id: I9e03c379806e124fa7253b2a635574b2433f6afc
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8e62c45..3b53d32 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2705,10 +2705,8 @@
             </intent-filter>
         </activity>
 
-        <activity
+        <receiver
             android:name=".wifi.slice.ConnectToWifiHandler"
-            android:theme="@android:style/Theme.NoDisplay"
-            android:excludeFromRecents="true"
             android:exported="false" />
 
         <activity