buffers: major cleanup and improvements

This patch introduces following changes:
- deprecated free lists which are not used and not compatible
  with external buffer managers (i.e. DPDK)
- introduces native support for per-numa buffer pools
- significantly improves performance of buffer alloc and free

Change-Id: I4a8e723ae47056717afd6cac0efe87cb731b5be7
Signed-off-by: Damjan Marion <damarion@cisco.com>
diff --git a/src/vppinfra/error_bootstrap.h b/src/vppinfra/error_bootstrap.h
index 248d389..18d2176 100644
--- a/src/vppinfra/error_bootstrap.h
+++ b/src/vppinfra/error_bootstrap.h
@@ -91,6 +91,10 @@
 #define STATIC_ASSERT_OFFSET_OF(s, e, o) \
   STATIC_ASSERT (STRUCT_OFFSET_OF(s,e) == o, "Offset of " #s "." #e " must be " # o)
 
+#define STATIC_ASSERT_FITS_IN(s, e, o) \
+  STATIC_ASSERT (STRUCT_OFFSET_OF(s,e) <= (o - sizeof(((s *)0)->e)), \
+  #s "." #e " does not fit into " # o " bytes")
+
 /* Assert without allocating memory. */
 #define ASSERT_AND_PANIC(truth)			\
 do {						\