settings: add delete key-value pair API

So far to deleting av existing key-value pair it was
required to storing NULL value using setting_save_one().
This patch introduce more intuitive API which takes only
the name key string.


Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
diff --git a/include/settings/settings.h b/include/settings/settings.h
index 35b94e7..70181a1 100644
--- a/include/settings/settings.h
+++ b/include/settings/settings.h
@@ -140,6 +140,18 @@
 int settings_save_one(const char *name, void *value, size_t val_len);
 
 /**
+ * Delete a single serialized in persisted storage.
+ *
+ * Deleting an existing key-value pair in the settings mean
+ * to set its value to NULL.
+ *
+ * @param name Name/key of the settings item.
+ *
+ * @return 0 on success, non-zero on failure.
+ */
+int settings_delete(const char *name);
+
+/**
  * Set settings item identified by @p name to be value @p value.
  * This finds the settings handler for this subtree and calls it's
  * set handler.
diff --git a/subsys/settings/src/settings_store.c b/subsys/settings/src/settings_store.c
index 35a35d3..da9fe94 100644
--- a/subsys/settings/src/settings_store.c
+++ b/subsys/settings/src/settings_store.c
@@ -164,6 +164,11 @@
 	return cs->cs_itf->csi_save(cs, name, (char *)value, val_len);
 }
 
+int settings_delete(const char *name)
+{
+	return settings_save_one(name, NULL, 0);
+}
+
 int settings_save(void)
 {
 	struct settings_store *cs;