library: move Osmocom_Types.Arfcn to GSM_Types.GsmBandArfcn

In some cases GsmArfcn itself is not enough.  It case of L1CTL
and GSMTAP, it needs to be equipped with a band discriminator:

  - DCS / PCS (as the numbers may overlap),
  - Downlink / Uplink (not yet there).

Let's rename this record and move it to GSM_Types.  Also, add
send / receive tamplates, so we can add new fields later.

Change-Id: I7a63f03bbd15a06caafb786122dc12991d115771
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 462e2d5..4be8d2b 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -585,7 +585,7 @@
 			for (j := 0; j < lengthof(g.trx_maio); j := j + 1) {
 				var FreqHopGroupItem gi := g.trx_maio[j];
 				var GsmArfcn arfcn := c_arfcn_list[gi.trx_nr];
-				fhp.ma := fhp.ma & { { false, arfcn } };
+				fhp.ma := fhp.ma & { valueof(ts_GsmBandArfcn(arfcn)) };
 				fhp.ma_map.ma[gi.trx_nr] := '1'B;
 			}
 
@@ -636,7 +636,8 @@
 }
 
 friend function f_l1_tune(L1CTL_PT L1CTL, L1ctlCcchMode ccch_mode := CCCH_MODE_COMBINED) {
-	f_L1CTL_FBSB(L1CTL, { false, mp_trx0_arfcn }, ccch_mode, mp_rxlev_exp);
+	var GsmBandArfcn arfcn := valueof(ts_GsmBandArfcn(mp_trx0_arfcn));
+	f_L1CTL_FBSB(L1CTL, arfcn, ccch_mode, mp_rxlev_exp);
 }
 
 private function f_trxc_fake_rssi(TRXC_RSSI rssi) runs on ConnHdlr {
diff --git a/bts/BTS_Tests_LAPDm.ttcn b/bts/BTS_Tests_LAPDm.ttcn
index d961adb..0c032bb 100644
--- a/bts/BTS_Tests_LAPDm.ttcn
+++ b/bts/BTS_Tests_LAPDm.ttcn
@@ -43,7 +43,8 @@
 
 /* master function switching to a dedicated radio channel */
 function f_switch_dcch() runs on ConnHdlr {
-	var BCCH_tune_req tune_req := { arfcn := { false, mp_trx0_arfcn }, combined_ccch := true };
+	var GsmBandArfcn arfcn := valueof(ts_GsmBandArfcn(mp_trx0_arfcn));
+	var BCCH_tune_req tune_req := { arfcn := arfcn, combined_ccch := true };
 	var DCCH_switch_req sw_req;
 
 	/* Craft channel description (with or without frequency hopping parameters) */