pw_kvs: Apply config pattern; configure log level

- Add PW_KVS_LOG_LEVEL to the pw_kvs config file and update code to
  use it.
- Define a pw_kvs:config facade that be used to override configuration
  values.
- Set up the empty "$dir_pw_build:empty" target that all modules use as
  their default configuration backend via the
  pw_build_DEFAULT_MODULE_CONFIGURATION variable.

Change-Id: Idf54d93678ffbd65e9e02a10454df4479f73827a
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/21240
Reviewed-by: David Rogers <davidrogers@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
diff --git a/pw_build/BUILD.gn b/pw_build/BUILD.gn
index dfaad82..61b57c5 100644
--- a/pw_build/BUILD.gn
+++ b/pw_build/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright 2019 The Pigweed Authors
+# Copyright 2020 The Pigweed Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License"); you may not
 # use this file except in compliance with the License. You may obtain a copy of
@@ -109,6 +109,13 @@
   ]
 }
 
+# This empty target is used as the default value for module configurations.
+# Projects may set pw_build_DEFAULT_MODULE_CONFIG to a different GN target that
+# overrides modules' configuration options via macro definitions or a header
+# forcibly included with `-include`.
+group("empty") {
+}
+
 pw_doc_group("docs") {
   sources = [ "docs.rst" ]
 }