It occurred to me that a potential problem would be infinite recursion, given the
recursive nature of say.conf macros.

So, I pass the level down, and abort if we reach 150 levels of recursion. Experiment
shows that my java runtime dies at 1100 levels deep, I'll bet I can increase that with
some runtime memory argument, but... 150 seems pretty realistic to me, given the purpose
of recursion, and the size of the number strings involved, 150 seems wildly extravagant
as a limit, but, who knows what someone might come up with in the future?

I added some tests to make sure such infinite recursion cases are handled properly.

I also cleaned up a few error println's, to log to the log structures instead.

I removed some debug statements.