tbf: Move the current CS field to GprsMs

Currently the current CS value is stored in the cs field of
gprs_rlcmac_tbf and initialised when it is used the first time.

This commit adds separate fields for UL and DL CS values to the
GprsMs class and provides corresponding getter methods for GprsMs and
gprs_rlcmac_tbf.

Ticket: #1739
Sponsored-by: On-Waves ehf
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index d1ed1cd..0aa41a2 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -394,16 +394,16 @@
 	uint16_t space, chunk;
 	gprs_rlc_data *rlc_data;
 	const uint16_t bsn = m_window.v_s();
+	uint8_t cs = 1;
 
 	LOGP(DRLCMACDL, LOGL_DEBUG, "- Sending new block at BSN %d\n",
 		m_window.v_s());
 
-#warning "Selection of the CS doesn't belong here"
-	if (cs == 0) {
-		cs = bts_data()->initial_cs_dl;
-		if (cs < 1 || cs > 4)
-			cs = 1;
-	}
+	cs = current_cs();
+
+	OSMO_ASSERT(cs >= 1);
+	OSMO_ASSERT(cs <= 4);
+
 	/* total length of block, including spare bits */
 	const uint8_t block_length = gprs_rlcmac_cs[cs].block_length;
 	/* length of usable data of block, w/o spare bits, inc. MAC */