Convert vold_prepare_subdirs to C++

Minimize overhead in boot by replacing shell script invoked multiple
times with a C++ program invoked once.

Bug: 67901036
Test: create user, run adb shell ls -laZ /data/misc_ce/10; delete user
    and check logs.
Change-Id: I886cfd6505cca1f5b5902f2071e13f48e612214d
diff --git a/Android.bp b/Android.bp
index f7ec836..8827d25 100644
--- a/Android.bp
+++ b/Android.bp
@@ -170,24 +170,20 @@
 }
 
 cc_binary {
-    name: "prepare_dir",
-    defaults: ["vold_default_flags"],
-
-    srcs: ["prepare_dir.cpp"],
-    shared_libs: [
-        "libbase",
-        "libcutils",
-        "libselinux",
-    ],
-}
-
-cc_prebuilt_binary {
     name: "vold_prepare_subdirs",
     defaults: ["vold_default_flags"],
 
-    srcs: ["vold_prepare_subdirs"],
-
-    required: ["prepare_dir"],
+    srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "liblogwrap",
+        "libselinux",
+        "libutils",
+    ],
+    static_libs: [
+        "libvold_binder",
+    ],
 }
 
 subdirs = ["tests"]