Clean-up of the old vsmoother class

This started as a "few" simple formatting fixes (did Larisa's keyboard not have a space bar?) and quickly escalated into a full refactoring that I worked on every once in a while in the evening... it produces essentially the same output as it did before the refactoring (modulo a couple bug fixes) on a small test code that I created, but I've kept the branch fairly modular in case some bugs were introduced along the way.

I don't think we have any tests for this, so I'm mostly submitting it to the CI to be sure that it still compiles OK on GCC...