Develop

This is a crude and ugly cherry-pick merge from a subtree split of the Carleton codebase. This is what kind of junk you get when Nate leaves us alone to our wits alone.