killed treecc

In r89, I got rid of treecc. The patch was huge, almost the size of codebase itself. What changed?

AST is now written in pure C, and was broken into several modules. This improved the speed of compile part in edit-compile-link-test loop a bunch. For AST edits anyway, but given that AST occupied majority of the code, it wasn't hard to hit during debugging. Plus tons of warnings are almost gone, yacc and flex being the major exceptions.

Each module (not only AST modules) now consists of three files: .i files where datatype declarations reside, which you include if you only need to reference variables with given type; .h files with traditional interfaces, which you include if you also need to work with given type; and .c file with implementation. Quite unusual, but very useful, and gets rid of endless mutual dependencies in headers (virtually each part of AST code somehow uses all other AST parts).

On business logic side, I shuffled AST itself a bit. E.g. we now only have one binop node, parametrized by a binary operation to perform, instead of a node per binary operation.

All in all, hopefully the new codebase ordering will make it easier to clean up internals a bit. It would fit nicely into maintenance, no-new-features kind of milestone this should be.