Refactoring

Too many changes to list.

Also worth noting that it doesn't render recursively quite like it did before, but the logic for how to draw sub clocks is nicely-located in the SubClock class. I didn't take the time to get it just right but fixing this shouldn't be too hard.