Create supplemental data directories when app data is created

Supplemental data is closely related to app data, as such we want
their creation to happen at the same time. Owner of the these data
will be the supplemental process instead of the app.

The root directory for supplemental data is
/data/misc_{ce,de}/<user-id>/supplemental. This directory will be
created by vold when user is created.

Installd is responsible for creating app level directories under the
root, e.g, /data/misc_ce/0/supplemental/<app-name>. We also need code
level directory under the app direcotory, but that will be done with a
separate API. CreateAppData is responsible for things at app level, so
we will be maintaining the same level of abstraction.

Instlld will also create the shared directory under the app-level
directory, e.g, /data/misc_ce/0/supplemental/<app-name>/shared and
`cache` and `code_cache` directory under the `shared` directory.

Supplemental data should be removed when app data is removed. This
will be done in follow up Cls too.

Some of the public APIs of installd service was not being used by
anybody else, so made them private.

Bug: 211763739
Bug: 217543371
Test: atest installd_service_test:AppSupplementalDataTest
Ignore-AOSP-First: Feature is being developed in internal branch
Change-Id: I966c76b032821610293c53ba875e2800a5ce4804
Merged-In: I966c76b032821610293c53ba875e2800a5ce4804
(cherry picked from commit c40dff533dd842bf6fae21c05eea472be7106ba2)
diff --git a/cmds/installd/utils.h b/cmds/installd/utils.h
index 3973894..2d00845 100644
--- a/cmds/installd/utils.h
+++ b/cmds/installd/utils.h
@@ -60,6 +60,13 @@
 std::string create_data_user_ce_package_path_as_user_link(
         const char* volume_uuid, userid_t userid, const char* package_name);
 
+std::string create_data_misc_supplemental_path(const char* volume_uuid, bool isCeData,
+                                               userid_t userid);
+std::string create_data_misc_supplemental_package_path(const char* volume_uuid, bool isCeData,
+                                                       userid_t userid, const char* package_name);
+std::string create_data_misc_supplemental_shared_path(const char* volume_uuid, bool isCeData,
+                                                      userid_t userid, const char* package_name);
+
 std::string create_data_misc_ce_rollback_base_path(const char* volume_uuid, userid_t user);
 std::string create_data_misc_de_rollback_base_path(const char* volume_uuid, userid_t user);
 std::string create_data_misc_ce_rollback_path(const char* volume_uuid, userid_t user,