Various instrumentation work

* Instrumentation now handles all argument types. Non-trivial arguments
are placed in a match_expr with a new variable and that variable is
used for logging
* Log_id parameter added to logging, which allows multiple modules to
log to the same file.
* Log parsing functions allow combined log to be broken up into traces.
When given a module name it finds sequences of calls to that module and
makes traces. This works best when logging a child module and its
parent, the child module traces are then broken up by calls to the
parent module (e.g. {m_test, f, 1} {m,a,1} {m,b,2} {m_test, g, 2}
{m,a,2} etc.).