Rework FBE crypto to match the N way of doing things

Major rework and refactor of FBE code to load the keys at the right
time and in a natural way. The old code was aimed at our goals for M,
with patches on top, and didn't quite work.

Bug: 22358539

Change-Id: I9bf7a0a86ee3f2abf0edbd5966f93efac2474c2c
diff --git a/Ext4Crypt.h b/Ext4Crypt.h
index eb33876..3fb6f16 100644
--- a/Ext4Crypt.h
+++ b/Ext4Crypt.h
@@ -23,7 +23,6 @@
 
 // General functions
 int e4crypt_enable(const char* path);
-int e4crypt_main(int argc, char* argv[]);
 int e4crypt_change_password(const char* path, int crypt_type,
                             const char* password);
 int e4crypt_crypto_complete(const char* path);
@@ -36,12 +35,11 @@
                       char* value, size_t len);
 int e4crypt_set_field(const char* path, const char* fieldname,
                       const char* value);
-int e4crypt_vold_set_user_crypto_policies(const char *path);
 
 int e4crypt_vold_create_user_key(userid_t user_id, int serial, bool ephemeral);
 int e4crypt_destroy_user_key(userid_t user_id);
 
-int e4crypt_unlock_user_key(userid_t user_id, const char* token);
+int e4crypt_unlock_user_key(userid_t user_id, int serial, const char* token);
 int e4crypt_lock_user_key(userid_t user_id);
 
 int e4crypt_prepare_user_storage(const char* volume_uuid,