Introduce CRC and FSM for IuUP (user plane) as used in 3G RTP data

Only support for SMpSDU mode is introduced in this commit.

Not supported explicit list:
- Transparent mode
- ATM/AAL2 based Transport layer
- GTP-U based Transport Layer
- Iu Rate Control procedure
- Time Alignment procedure

APIs are provided to allocate the primitives properly inside the related
msgb. This way primitives can be placed in the headroom, leaving the
data part of the msgb for the IuUP payload, hence allowing re-use of the
msgb and 0 copy of IuUP payload when forwarding data over RNL<->TNL.
Since RNL and TNL primitives relu struct osmo_prim_header, which is not
packed, they cannot be set to packed, and hence proper memory alignment
in the msgb must be done to avoid misaligned accesses (Asan errors about
it otherwise).

Related: SYS#5516
Change-Id: Ibe356fa7b1abaca0091e368db8478e79c09c6cb0
diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h
index 18ad3ff..7907734 100644
--- a/include/osmocom/core/logging.h
+++ b/include/osmocom/core/logging.h
@@ -136,7 +136,8 @@
 #define DLBSSGP		-21	/*!< Osmocom BSSGP layer */
 #define DLNSDATA	-22	/*!< Osmocom NS layer data pdus */
 #define DLNSSIGNAL	-23	/*!< Osmocom NS layer signal pdus */
-#define OSMO_NUM_DLIB	23	/*!< Number of logging sub-systems in libraries */
+#define DLIUUP		-24	/*!< Osmocom IuUP layer */
+#define OSMO_NUM_DLIB	24	/*!< Number of logging sub-systems in libraries */
 
 /* Colors that can be used in log_info_cat.color */
 #define OSMO_LOGCOLOR_NORMAL NULL