osmo-bts-trx: Big refactor and cleanup of osmo-trx related code

* This commit is a preparation for future commits to add support for
different osmo-trx devices and backends like osmo-trx-lms.

* Drop deprecated osmo-trx-* cmd line params and use VTY cfg to set them.

* As number of osmo-trx related osmo-gsm-tester attributes grow, group
them togther in an "osmo_trx" dictionary.

Change-Id: I77d29413c9e3b600b796627ba366f80c3281b7e1
diff --git a/src/osmo_gsm_tester/schema.py b/src/osmo_gsm_tester/schema.py
index 174c28f..12cfd7a 100644
--- a/src/osmo_gsm_tester/schema.py
+++ b/src/osmo_gsm_tester/schema.py
@@ -115,6 +115,11 @@
         return
     raise ValueError('Unknown Codec value: %r' % val)
 
+def osmo_trx_clock_ref(val):
+    if val in ('internal', 'external', 'gspdo'):
+        return
+    raise ValueError('Unknown OsmoTRX clock reference value: %r' % val)
+
 INT = 'int'
 STR = 'str'
 UINT = 'uint'
@@ -132,6 +137,7 @@
 PHY_CHAN = 'chan'
 CHAN_ALLOCATOR = 'chan_allocator'
 CODEC = 'codec'
+OSMO_TRX_CLOCK_REF = 'osmo_trx_clock_ref'
 
 SCHEMA_TYPES = {
         INT: int,
@@ -151,6 +157,7 @@
         PHY_CHAN: phy_channel_config,
         CHAN_ALLOCATOR: channel_allocator,
         CODEC: codec,
+        OSMO_TRX_CLOCK_REF: osmo_trx_clock_ref,
     }
 
 def validate(config, schema):