Generate schemas dynamically from pieces provided by each object class

This way we benefit from:
* knowing which attributes are used/required by each object class and
  subclass
* Having validation function definitions near the class going to use them

Change-Id: I8fd6773c51d19405a585977af4ed72cad2b21db1
diff --git a/src/osmo-gsm-tester.py b/src/osmo-gsm-tester.py
index df87957..af66b32 100755
--- a/src/osmo-gsm-tester.py
+++ b/src/osmo-gsm-tester.py
@@ -70,7 +70,9 @@
 import argparse
 from signal import *
 from osmo_gsm_tester import __version__
-from osmo_gsm_tester.core import log, config
+from osmo_gsm_tester.core import log
+from osmo_gsm_tester.core.config import read_config_file, DEFAULT_SUITES_CONF
+from osmo_gsm_tester.core.schema import generate_schemas
 from osmo_gsm_tester import trial, suite
 
 def sig_handler_cleanup(signum, frame):
@@ -162,6 +164,9 @@
     if not combination_strs:
         raise RuntimeError('Need at least one suite:scenario or series to run')
 
+    # Generate supported schemas dynamically from objects:
+    generate_schemas()
+
     # make sure all suite:scenarios exist
     suite_scenarios = []
     for combination_str in combination_strs: