This allows the generated files to maintain the same folder structure as
how they exist in the source folder.
Resolves the issue that a file in a different folder could potentially
conflict with another in a different folder but have the same name.
This is an easier mental model when pulling unit tests in to a
disassembler for verifying codegen.
Now that everything is punched through that is necessary, we can now
have IR based unit tests that will be used to ensure the IR is working
correctly.
Specifically this is necessary for quick iterating on RA testing.