codegen for SumExpr
codegen for ComparisonExpr
ComparisonExpr needs to import Bool before returning it.
Integer arithmetic functions need to refer to "position".

This used to be "source_node.position" but these got missed during the
refactoring.
Refactor how code generation works, with the RuntimeProgram concept.

Rather than using Module as input to the code generator, add a new concept
called RuntimeProgram which describes a "flattened" program -- with all
of the referenced modules, functions and types -- and have that be the
code generation interface instead.

As of this commit there is no support for actually generating types at
runtime since it's not clear yet how that would fit in with types that
have no presence at runtime.