Adding target parameters to the tests/apps

With the new and improved Target selection approach, most of the tests/apps do not pass the Target object they construct to the compile_* and realize functions, meaning they ignore the target parameters requested by app/user.

To fix this, I added some overloads of compile_* and realize to help avoid passing parameters the code currently defaults, and then I searched the whole codebase for references to the get_target_* functions to find the programs that modify the Target object, and then passed that target instance to the relevant compile/realize function that program uses.