Convert status-stack into library object

Convert the status-stack visualization from an effectively-standalone
procedural routine into a library object which can be used to generate
error stacks from various input sources and for various output
encodings.