tbf: Move enable_egprs() to constructor

Whether the TBF is GPRS or EGPRS is known at allocation time since it
comes from the information known in the MS object used to create it.
Hence, no need to delay calling it to later steps such as setup().

So far it was probably left in setup() due to the constrains about
requiring the subclass to be constructed (use of window() virtual API).

Change-Id: I2e9d2a98c666a930333d52fb6c0463d7593c2615
diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp
index a6c4ee3..16ef304 100644
--- a/src/tbf_ul.cpp
+++ b/src/tbf_ul.cpp
@@ -189,6 +189,11 @@
 	OSMO_ASSERT(m_ul_egprs_ctrs);
 	m_ul_gprs_ctrs = rate_ctr_group_alloc(this, &tbf_ul_gprs_ctrg_desc, m_ctrs->idx);
 	OSMO_ASSERT(m_ul_gprs_ctrs);
+
+	/* This has to be called in child constructor because enable_egprs()
+	 * uses the window() virtual function which is dependent on subclass. */
+	if (ms_mode(m_ms) != GPRS)
+		enable_egprs();
 }
 
 /*