Support Keymaster4

This CL changes vold from using a KM3 device directly to using the KM4
support wrapper from the KM4 support library, which supports both KM3
and KM4 devices (KM0, 1 and 2 devices are still supported as well,
because the default KM3 device is a wrapper that uses them).

In addition, I found myself getting confused about which "Keymaster"
types were locally-defined vold keymaster types and which were from
the KM4 HAL and support library, so I changd the approach to
referencing the latter, so all of them are qualified with the "km::"
namespace reference.

Test: Build & boot
Change-Id: I08ed5425641e7496f8597d5716cb3cd0cbd33a7f
diff --git a/Android.bp b/Android.bp
index 3760285..12d8b2d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -38,6 +38,7 @@
     ],
     shared_libs: [
         "android.hardware.keymaster@3.0",
+        "android.hardware.keymaster@4.0",
         "libbase",
         "libbinder",
         "libcrypto",
@@ -50,6 +51,7 @@
         "libhardware_legacy",
         "libhidlbase",
         "libhwbinder",
+        "libkeymaster4support",
         "libkeyutils",
         "liblog",
         "liblogwrap",
@@ -113,7 +115,6 @@
         "VoldNativeService.cpp",
         "VoldUtil.cpp",
         "VolumeManager.cpp",
-        "authorization_set.cpp",
         "cryptfs.cpp",
         "fs/Exfat.cpp",
         "fs/Ext4.cpp",