pw_kvs: Map-backed tests

Introduce a system for writing tests against flash memories with
different parameters. The tests use a std::unordered_map as an oracle,
and all operations are checked against it. Invalid inputs and the KVS
filling up are handled.

Disable most of the tests because they are currently failing.

Change-Id: Ib817e30a199c81b3146823252be91e0db016c9b3
diff --git a/pw_kvs/BUILD b/pw_kvs/BUILD
index a059c7b..25a0eaa 100644
--- a/pw_kvs/BUILD
+++ b/pw_kvs/BUILD
@@ -105,6 +105,18 @@
 )
 
 pw_cc_test(
+    name = "key_value_store_test",
+    srcs = ["key_value_store_test.cc"],
+    deps = [
+        ":crc16",
+        ":in_memory_fake_flash",
+        ":pw_kvs",
+        "//pw_checksum",
+        "//pw_log",
+    ],
+)
+
+pw_cc_test(
     name = "key_value_store_fuzz_test",
     srcs = ["key_value_store_fuzz_test.cc"],
     deps = [
@@ -116,14 +128,13 @@
 )
 
 pw_cc_test(
-    name = "key_value_store_test",
-    srcs = ["key_value_store_test.cc"],
+    name = "key_value_store_map_test",
+    srcs = ["key_value_store_map_test.cc"],
     deps = [
         ":crc16",
         ":in_memory_fake_flash",
         ":pw_kvs",
         "//pw_checksum",
-        "//pw_log",
     ],
 )