tbf: Add BTS::ms_alloc method

Currently the code that creates the MS objects with tbf.cpp is
duplicated.

This commit moves the corresponding code into a new method. Since
there is no TLLI available there, the GprsMsStorage::create_ms method
has been refactored into two variants: one with TLLI/direction and
one without.

Sponsored-by: On-Waves ehf
diff --git a/src/tbf.cpp b/src/tbf.cpp
index faddb79..9bdc1f7 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -499,11 +499,8 @@
 
 	tbf->direction = GPRS_RLCMAC_UL_TBF;
 
-	if (!ms) {
-		ms = bts->bts->ms_store().create_ms(0, tbf->direction);
-		ms->set_timeout(bts->ms_idle_sec);
-		ms->set_ms_class(ms_class);
-	}
+	if (!ms)
+		ms = bts->bts->ms_alloc(ms_class);
 
 	rc = setup_tbf(tbf, bts, ms, tfi, trx, ms_class, single_slot);
 	/* if no resource */
@@ -539,11 +536,8 @@
 
 	tbf->direction = GPRS_RLCMAC_DL_TBF;
 
-	if (!ms) {
-		ms = bts->bts->ms_store().create_ms(0, tbf->direction);
-		ms->set_timeout(bts->ms_idle_sec);
-		ms->set_ms_class(ms_class);
-	}
+	if (!ms)
+		ms = bts->bts->ms_alloc(ms_class);
 
 	rc = setup_tbf(tbf, bts, ms, tfi, trx, ms_class, single_slot);
 	/* if no resource */