e4c: better context handling
According the author of exceptions4c library:
"exceptions4c provides a macro e4c_reusing_context which allows for
exception handling inside library functions. This macro reuses
an existing exception context, if available when the library function
was called. If there is no current exception context, then begins a
new one and automatically ends it when finished." -- Guillermo Calvo.
We use this strategy to avoid any need to unload when the TCL
interpreter quits. We also handle default signals to trap SIGSEGV.
To make the code more readable, we separate the exceptions4c code
from the command switch code. The last is moved to call_mq_command.