Fixed up a few bugs, and now the compress-chains is working. Sort of. I
mean, it's outputting correct values (as far as I can tell), and it isn't
putting in so many extraneous exponents, but I think a bit more cleaning
up may be in order. Either that or the next stage will just handle it.
Undecided. Anyway, committing so I don't lose work.
Began working on a very simple fuzzer for some testing. Actually already
spotted a bug in an earlier part of the chain! Apparently "b/b/b" does not
give what is intended - end up with "(^ b 1)" in the long term, because an
earlier part end up giving us "(* (* b 1) 1)" somehow. I'll poke around
and see where the error is.

Also, I'm thinking I need to formalize so that all symbols need to be
wrapped in some level of exp term at the end of compress-chains. That is, (+ b 1) is not okay, it has to
be (+ (^ b 1) 1) for consistency and comparisons down the line (possibly
even in that same level)