Ignore unused code paths

We don’t want to remove these as the generic code may need it in the future, but these code paths are not triggered through the existing language constructs.
Bump test coverage
Simplify program generation logic
Include location information in all opcodes
Generate source maps

Allow the precompiler to generate source maps when the srcFile parameter is passed.

This refactors large chunks of the code generation pipeline, allowing metadata to be associated with code chunks as well as breaking out much of the code generation logic into a separate helper.