Keystore 2.0: Add super encryption infrastructure.

Add super_key.rs a runtime key database for credential based keys and
the relevant metadata fields to the database.

Also in this patch:
* Add DateTime type to represent database wall clock time.
* Move creation time to key metadata.
* Add KeyType field to the keyentry table to accommodate super keys
  and attestation keys.

Test: keystore2_test
Bug: 173545997
Change-Id: I670898174fb0223bf1c910051dfd7ead80b2c1a9
diff --git a/keystore2/src/globals.rs b/keystore2/src/globals.rs
index 3ef75c8..eff3196 100644
--- a/keystore2/src/globals.rs
+++ b/keystore2/src/globals.rs
@@ -17,6 +17,8 @@
 //! to talk to.
 
 use crate::database::KeystoreDB;
+use crate::super_key::SuperKeyManager;
+use lazy_static::lazy_static;
 use std::cell::RefCell;
 
 thread_local! {
@@ -34,3 +36,8 @@
                 )
                 .expect("Failed to open database."));
 }
+
+lazy_static! {
+    /// Runtime database of unwrapped super keys.
+    pub static ref SUPER_KEY: SuperKeyManager = Default::default();
+}