Fix mcs_is_valid(): UNKNOWN value is not a valid (M)CS

Also add a few more asserts to make sure a valid CS/MCS is passed in
some placed where we expect (M)CS to be set.

Change-Id: I0a973e10cd9477f72d8bd47a06048414b33ae96a
diff --git a/src/rlc.cpp b/src/rlc.cpp
index 4f36025..8f56a8e 100644
--- a/src/rlc.cpp
+++ b/src/rlc.cpp
@@ -350,6 +350,7 @@
 void gprs_rlc_data_info_init_dl(struct gprs_rlc_data_info *rlc,
 	enum CodingScheme cs, bool with_padding, const unsigned int spb)
 {
+	OSMO_ASSERT(mcs_is_valid(cs));
 	return gprs_rlc_data_header_init(rlc, cs, with_padding,
 					 num_data_header_bits_DL(mcs_header_type(cs)), spb);
 }
@@ -357,6 +358,7 @@
 void gprs_rlc_data_info_init_ul(struct gprs_rlc_data_info *rlc,
 	enum CodingScheme cs, bool with_padding)
 {
+	OSMO_ASSERT(mcs_is_valid(cs));
 	/*
 	 * last parameter is sent as 0 since common function used
 	 * for both DL and UL