Package report/repo parser integration

 - parser able to filter package versions using keywords
 - warning message on missing tag
 - on the fly versions lookup (excluding '*.hotfix')
 - updated versions compare routine
 - lexical compare uses numbers, not ordinal values
 - updated release version detection
 - final report lists pkg section/app if no description given
 - final report shows repo info for detected release version

Fixes:
 - shorter alternate entrpoints: mcp-pkg, mcp-net, cmp-reclass
 - flake8 syntax
 - proper mirantis/non-mirantis versions getting
 - exit on unexpected arguments
 - salt-master class now gets linux codename by default and architecture

Change-Id: I0a2daadca8a1acaecafc8680226dc00d20cc24ce
Related-PROD: PROD-28199
diff --git a/cfg_checker/cfg_check.py b/cfg_checker/cfg_check.py
index 37f9957..1a2d79f 100644
--- a/cfg_checker/cfg_check.py
+++ b/cfg_checker/cfg_check.py
@@ -44,11 +44,19 @@
 
     # parse arguments
     try:
-        args = parser.parse_args()
+        args, unknown = parser.parse_known_args()
     except TypeError:
         logger_cli.info("\n# Please, check arguments")
         sys.exit(0)
 
+    if unknown:
+        logger_cli.error(
+            "# Unexpected arguments: {}".format(
+                ", ".join(["'{}'".format(a) for a in unknown])
+            )
+        )
+        sys.exit(1)
+
     # Pass externally configured values
     config.ssh_uses_sudo = args.sudo