libosmocoding: migrate transcoding routines from OsmoBTS

There are some projects, such as GR-GSM and OsmocomBB, which would
benefit from using one shared implementation of GSM 05.03 code. So,
this commit introduces a new sub-library called libosmocoding, which
(for now) provides GSM, GPRS and EDGE transcoding routines, migrated
from OsmoBTS.

The original GSM 05.03 code from OsmoBTS was relicensed under
GPLv2-or-later with permission of copyright holders (Andreas Eversberg,
Alexander Chemeris and Tom Tsou).

The following data types are currently supported:

 - xCCH
 - PDTCH (CS 1-4 and MCS 1-9)
 - TCH/FR
 - TCH/HR
 - TCH/AFS
 - RCH/AHS
 - RACH
 - SCH

Change-Id: I0c3256b87686d878e4e716d12393cad5924fdfa1
diff --git a/utils/conv_codes_gsm.py b/utils/conv_codes_gsm.py
index 1bee6db..279bd3a 100644
--- a/utils/conv_codes_gsm.py
+++ b/utils/conv_codes_gsm.py
@@ -111,6 +111,30 @@
 		]
 	),
 
+	# CS2 definition (non-punctured)
+	ConvolutionalCode(
+		290,
+		shared_polys["xcch"],
+		name = "cs2_np",
+		description = [
+			"CS2 convolutional code (non-punctured):",
+			"G0 = 1 + D3 + D4",
+			"G1 = 1 + D + D3 + D4",
+		]
+	),
+
+	# CS3 definition (non-punctured)
+	ConvolutionalCode(
+		334,
+		shared_polys["xcch"],
+		name = "cs3_np",
+		description = [
+			"CS3 convolutional code (non-punctured):",
+			"G0 = 1 + D3 + D4",
+			"G1 = 1 + D + D3 + D4",
+		]
+	),
+
 	# TCH_AFS_12_2 definition
 	ConvolutionalCode(
 		250,