[CloneProfile] Create user mount directory before creating bind mounts.

In aosp/2679182 the capability to add bind mounts for clone user
in public volumes was added.
This allows apps in clone profile to access public volume via lower
fs.
However, sometimes, the user mount directory (/user/mount/<user-id>)
is itself not present, resulting in failures of public volume
bind mounts. This CL addresses this.

Bug: 327293687
Test: Manul build and flash
Change-Id: I0680a518cb14983c6f2e636a38ab6dcd476d7eab
diff --git a/model/PublicVolume.cpp b/model/PublicVolume.cpp
index e86d002..91b1ca2 100644
--- a/model/PublicVolume.cpp
+++ b/model/PublicVolume.cpp
@@ -269,6 +269,12 @@
             // No need to bind if the user does not share storage with the mount owner
             continue;
         }
+        // Create mount directory for the user as there is a chance that no other Volume is mounted
+        // for the user (ex: if the user is just started), so /mnt/user/user_id  does not exist yet.
+        auto mountDirStatus = PrepareMountDirForUser(started_user);
+        if (mountDirStatus != OK) {
+            LOG(ERROR) << "Failed to create Mount Directory for user " << started_user;
+        }
         auto bindMountStatus = bindMountForUser(started_user);
         if (bindMountStatus != OK) {
             LOG(ERROR) << "Bind Mounting Public Volume: " << stableName