Separated everything as much as possible; into base algebra classes, QL algebra, QL itself, QL extensions and new functionality.
Extracted types from the expr/stmnt factory into its own factory.