Moved log generation code into a Log Specifier staticmethod

New 'write_log' staticmethod of Log specifier designed to unify the
creation of log files and the addition of entries to existing logs.
Specifiers no longer callable - introduced caller helper utility.

Interface to Python code has been updated. Specifiers are no longer
callable and the 'caller' helper utility should be used instead. This
change has simplified a lot of code and should be easier to maintain.
Fixed pretty printing in review and removed use of pprint pformat

Pretty printing of specifiers improved in review and now constant
items shown (not just constant keys). Removed use of pformat as it
wasn't helping with readability.