Move f_hex_is_odd_length from BSSMAP_Templates to GSM_Types

It's a quite frequent requirement in encoding IMSI/BCD numbers, so
let's move it to the more generic GSM_Types module.

Change-Id: I6fb8d9a6f37c990f6901fb48b15312a157954fda
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index cd94ad1..77ff7e4 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -644,14 +644,6 @@
 }
 
 
-function f_hex_is_odd_length(hexstring digits) return bitstring {
-	if (lengthof(digits) rem 2 == 1) {
-		return '1'B;
-	} else {
-		return '0'B;
-	}
-}
-
 template BSSMAP_IE_IMSI ts_BSSMAP_Imsi(hexstring imsi_digits) := {
 	elementIdentifier := '08'O,
 	lengthIndicator := 0, /* overwritten */
diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn
index e1d6b48..e57575d 100644
--- a/library/GSM_Types.ttcn
+++ b/library/GSM_Types.ttcn
@@ -160,4 +160,12 @@
 		sapi := sapi
 	};
 
+	function f_hex_is_odd_length(hexstring digits) return bitstring {
+		if (lengthof(digits) rem 2 == 1) {
+			return '1'B;
+		} else {
+			return '0'B;
+		}
+	}
+
 } with { encode "RAW"; variant "FIELDORDER(msb)" }