Improve error handling.

Templates for error messages are now kept as public static instances
of the Error class, and the compiler constructs contextualized messages
from these templates by calling the on(line, column, Object... args)
factory method. E.g.

   System.out.println(Error.UNDECLARED_CLASS.on(line, column, theClass));