pw_kvs: Replace string_view with custom type

Create a new type 'Key' which behaves the same as string_view but
doesn't require C++17.

Test: Passes all tests.
Change-Id: I2ebadbb0405f3fa3520dad46ea500cafe652f230
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/27140
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Rob Oliver <rgoliver@google.com>
diff --git a/pw_kvs/BUILD b/pw_kvs/BUILD
index 2cd3cbc..82c4002 100644
--- a/pw_kvs/BUILD
+++ b/pw_kvs/BUILD
@@ -48,6 +48,7 @@
         "public/pw_kvs/flash_memory.h",
         "public/pw_kvs/format.h",
         "public/pw_kvs/io.h",
+        "public/pw_kvs/key.h",
         "public/pw_kvs/key_value_store.h",
     ],
     includes = ["public"],
@@ -271,6 +272,18 @@
 )
 
 pw_cc_test(
+    name = "key_test",
+    srcs = [
+        "key_test.cc",
+    ],
+    deps = [
+        ":pw_kvs",
+        "//pw_status",
+        "//pw_unit_test",
+    ],
+)
+
+pw_cc_test(
     name = "key_value_store_test",
     srcs = ["key_value_store_test.cc"],
     deps = [