Introducing a systematic way to deal with node types that are handled differently on the front end

Long story hopefully short, after writing a function to alter the format of Interpretation ids from "1005-Interpretations-2" to "I-1005-2" I realized that similar changes will probably need to be made in the future on other types. The markup_id change broke the TOC link since the TOC url is generated from the TOC layer and things were looking pretty ugly for a one-off solution.

The idea here is to introduce some sane way to deal with outliers. The naming feels a little unwieldy if nothing else, can be changed. I'm not sure if what I ended up introducing should be a layer.

If this type of thing is a good idea, we should bring some bits of the HTML builder into it, like node_type().