resolve stricter warnings

In order to convert this repository to Meson, we need to make it
compile under `warning_level=3`.  Fix a number of warning classes
across the repository or disable them.

Some fixes are:

* Add missing header files.
* Fully initialize structs as necessary.
* Add `__attribute__((unused))` on parameters as necessary.
* Fix comparisons between signed and unsigned.
* Fix printf specifiers as necessary.
* Avoid case-fallthrough.
* Remove if conditions which are always true.

Some warnings would require extensive code changes, due to their
pervasive use, and so are disabled at a per-file level:
* `-Wpointer-arith`
* `-Wunused-result`

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: If8992b9108f12b39f796ed090ba29868c9f3c627
diff --git a/backend.h b/backend.h
index 2433c91..59a6201 100644
--- a/backend.h
+++ b/backend.h
@@ -8,6 +8,7 @@
 #include <assert.h>
 #include <errno.h>
 #include <stdbool.h>
+#include <stddef.h>
 #include <stdint.h>
 #include <mtd/mtd-abi.h>
 
@@ -269,13 +270,13 @@
 #else
 static inline struct backend backend_get_vpnor(void)
 {
-	struct backend be = { 0 };
+	struct backend be = { NULL, NULL, 0, 0, 0 };
 
 	return be;
 }
 
-static inline int backend_probe_vpnor(struct backend *master,
-				      const struct vpnor_partition_paths *paths)
+static inline int backend_probe_vpnor(struct backend *master __attribute__((unused)),
+				      const struct vpnor_partition_paths *paths __attribute__((unused)))
 {
 	return -ENOTSUP;
 }