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 {