Rename the "isolate" instruction to "end".

Just a cosmetic change. This name seems a little clearer as to what the
purpose of this thing is.
Default impl for Symbol.codegen_name should print self, not builder.
Symbol interface needs both load and store implementations.
Correct docstring on ErroredExpression class.
Indicate which expression types can be lvalues.
Make BasicBlock and ControlFlowGraph available via alamatic.intermediate.
Flesh out Builder methods for creating operands.
Remove the distinction between template and global constants.

There is no difference in handling of these within the compiler so no
reason to make the distinction.
Flesh out some of the instruction archetype implementations.

Also moving around some of the names and types of the actual instructions.
Property to enumerate all of the blocks in a CFG.
Model for an IR function and a local variable.
Beginnings of mechanism to lower an AST into IR.

This uses the new IR builder to more easily construct a CFG from the AST.
Refactor and expand the debug utility module.

Can now print IR objects as well as ASTs.