log: Improve log ctx information in log.Error exception

Before, it would show somethig like:
"""
osmo_gsm_tester.core.log.Error: Exited in error 255
"""

Now:
"""
osmo_gsm_tester.core.log.Error: rm-remote-dir(pid=24820): Exited in error 255 [trial↪4g:srsue-rftype@zmq+srsenb-rftype@zmq+mod-enb-nprb@6↪ping.py:9↪ping.py↪srsepc_10.42.42.118↪host-jenkins@10.42.42.110↪rm-remote-dir(pid=24820)]
"""

Change-Id: I8873f67a2f3df21c4dd552c92510535bf95e2c9d
diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py
index 8ae55d9..2cf1af0 100644
--- a/src/osmo_gsm_tester/core/log.py
+++ b/src/osmo_gsm_tester/core/log.py
@@ -88,8 +88,17 @@
 get_process_id = lambda: '%d-%d' % (os.getpid(), time.time())
 
 class Error(Exception):
-    def __init__(self, *messages, **named_items):
-        super().__init__(compose_message(messages, named_items))
+    def __init__(self, *messages, origin=None, **named_items):
+        msg = ''
+        if origin is None:
+            origin = Origin.find_on_stack(f=sys._getframe(1))
+        if origin:
+            msg += origin.name() + ': '
+        msg += compose_message(messages, named_items)
+        if origin and origin._parent is not None:
+            deeper_origins = origin.ancestry_str()
+            msg += ' [%s]' % deeper_origins
+        super().__init__(msg)
 
 class LogTarget:
     all_targets = []