scripts: imgtool: Fix img verify for hex file format

Currently imgtool --verify fails for hex files with:

Invalid image magic; is this an MCUboot image?

Added support for hex files by converting hex to bin
using IntelHex::tobinstr().

Reusing image.load() needs a bit of rework, maybe a
common load method will be done in the future,

Signed-off-by: Lucian Zala <zala.lucian@gmail.com>
diff --git a/scripts/imgtool/image.py b/scripts/imgtool/image.py
index 67f4a30..3de8357 100644
--- a/scripts/imgtool/image.py
+++ b/scripts/imgtool/image.py
@@ -623,8 +623,15 @@
 
     @staticmethod
     def verify(imgfile, key):
-        with open(imgfile, "rb") as f:
-            b = f.read()
+        ext = os.path.splitext(imgfile)[1][1:].lower()
+        try:
+            if ext == INTEL_HEX_EXT:
+                b = IntelHex(imgfile).tobinstr()
+            else:
+                with open(imgfile, 'rb') as f:
+                    b = f.read()
+        except FileNotFoundError:
+            raise click.UsageError(f"Image file {imgfile} not found")
 
         magic, _, header_size, _, img_size = struct.unpack('IIHHI', b[:16])
         version = struct.unpack('BBHI', b[20:28])