Allow source files to be contained within subdirectories

The previous way that source files were listed in `*source*` didn't allow for files to be contained within sub-directories of `src/`. This pull request provides a way to do that. See [jscl.lisp#L25](https://github.com/orodley/jscl/blob/2ce30f2b60b65b1cb97c41e1aed71453485d41ea/jscl.lisp#L25) for details. The important detail of this is that you can't iterate directly over `*source*` anymore, it has to be processed by `get-files` first to handle the nested directories. The macro `do-source` is provided to do this automatically before iterating over the source files.

The motivation for this change was some planned additions to the compiler which would have necessitated a new file, and 3 files seemed like enough that they should be contained in a sub-directory. So `compiler.lisp` and `compiler-codegen.lisp` have been moved into a new sub-directory.

I also made the compiler always print file names relative to the current directory when compiling files, as test file names weren't before.