Do not clean profiles unconditonally during app data clean up

The goal is to enable profiles to be persisted across OTAs.

This CL makes profile removal a dedicated path which will be called by
PackageManger during an app update or uninstall.

Profiles are cleared when:
- requested to do a full clean up of application data files
- specifically requested to clear them (e.g. app updates)

Profiles are destroyed (includes profile directory removal)
- for each user individually when its application data is destroyed
- for all users if the package gets uninstalled.

Bug: 27081617
Bug: 27688727
Change-Id: Id53c7625011af3cdbe8a58ac0982982fa461e5fd
diff --git a/cmds/installd/commands.h b/cmds/installd/commands.h
index b473e3e..4e39664 100644
--- a/cmds/installd/commands.h
+++ b/cmds/installd/commands.h
@@ -56,7 +56,8 @@
 int idmap(const char *target_path, const char *overlay_path, uid_t uid);
 int create_oat_dir(const char* oat_dir, const char *instruction_set);
 int rm_package_dir(const char* apk_path);
-int rm_profiles(const char* pkgname);
+int clear_app_profiles(const char* pkgname);
+int destroy_app_profiles(const char* pkgname);
 int link_file(const char *relative_path, const char *from_base, const char *to_base);
 
 // Move a B version over to the A location. Only works for oat_dir != nullptr.