loci: make assertions optional

The standard NDEBUG flag is used.

With NDEBUG set loci.o is reduced in size by 70%.
diff --git a/c_gen/c_code_gen.py b/c_gen/c_code_gen.py
index 0a10715..b32bd27 100644
--- a/c_gen/c_code_gen.py
+++ b/c_gen/c_code_gen.py
@@ -894,11 +894,15 @@
 
 extern const char *of_error_strings[];
 
+#ifndef NDEBUG
 /* #define ASSERT(val) assert(val) */
 #define FORCE_FAULT *(volatile int *)0 = 1
 #define ASSERT(val) if (!(val)) \\
     fprintf(stderr, "\\nASSERT %s. %s:%d\\n", #val, __FILE__, __LINE__), \\
     FORCE_FAULT
+#else
+#define ASSERT(val)
+#endif
 
 /*
  * Some LOCI object accessors can fail, and it's easy to forget to check.