Unified command execution and unit tests

- All arguments inits moved to own clases
- Added unified way to execute commands
- Unit test structure and very basic tests
- Command line script to test coverage
- Argument parsers moved to corresponding commands
- Automatic parsers and command mapping

Change-Id: Id099d14702d9590729583dfd9574bd57022efac5
Related-PROD: PROD-28199
diff --git a/cfg_checker/cfg_check.py b/cfg_checker/cfg_check.py
index 22125f6..37f9957 100644
--- a/cfg_checker/cfg_check.py
+++ b/cfg_checker/cfg_check.py
@@ -2,10 +2,7 @@
 import sys
 from logging import DEBUG, INFO
 
-from cfg_checker.cli.command import execute_command
-from cfg_checker.cli.network import init_network_parser
-from cfg_checker.cli.package import init_package_parser
-from cfg_checker.cli.reclass import init_reclass_parser
+from cfg_checker.cli.command import execute_command, helps, parsers
 from cfg_checker.common import config, logger, logger_cli
 from cfg_checker.helpers.args_utils import MyParser
 
@@ -37,26 +34,13 @@
     )
     subparsers = parser.add_subparsers(dest='command')
 
-    # package
-    pkg_parser = subparsers.add_parser(
-        'packages',
-        help="Package versions check (Candidate vs Installed)"
-    )
-    init_package_parser(pkg_parser)
-
-    # networking
-    net_parser = subparsers.add_parser(
-        'network',
-        help="Network infrastructure checks and reports"
-    )
-    init_network_parser(net_parser)
-
-    # reclass
-    reclass_parser = subparsers.add_parser(
-        'reclass',
-        help="Reclass related checks and reports"
-    )
-    init_reclass_parser(reclass_parser)
+    # create parsers
+    for _command in helps.keys():
+        _parser = subparsers.add_parser(
+            _command,
+            help=helps[_command]
+        )
+        parsers[_command](_parser)
 
     # parse arguments
     try: