[utils] Add a '_cwtracehtml' GET parameter to trace self._cw.w() calls (closes #4601327)
The core of this patch is in UStringIO.write(). When tracing is enabled,
write() doesn't just append the 'value' argument to the underlying list.
Instead, a stack trace is recorded and a special HTML "source" is
formatted.
The output with tracing enabled is an HTML page, with the original HTML
escaped, and made clickable to show the stack trace when the write()
call was done.
This allows answering the recurring question: "who wrote this tag
here?!"
[MESSAGES CONTROL]
disable-msg = C0301
[VARIABLES]
# Enable / disable this checker
enable-variables = yes
additional-builtins = _, display_name
[BASIC]
required-attributes=
attr-rgx = (w|[a-z_][a-z0-9_]{2,30})
variable-rgx = (w|[a-z_][a-z0-9_]{2,30})$
argument-rgx = (w|[a-z_][a-z0-9_]{2,30})$
[TYPECHECK]
generated-members=debug,info,notice,warning,error,critical,exception