- removed all uses of ILocation in the ProgramFactory because this can
only be generated when reading from file.
- instead, added a function to create Attributes instead that refer to
the original source location.