more info on Output + minor backend cleanups

- Refactor SourceFile to return an Ouput obj, which provides more info on whether the output is an error message or an actual output
- Remove unsed/deprecated source files
- Minor cleanups