Add support for using a prebuilt app to allow decoupling of the tasks

Add support for using a prebuilt app to allow decoupling of the tasks. Our build can take quite a bit of time to complete, so I'd like to separate the responsibilities. Also, I'd like to be able to run the tests more frequently that when new updates have been made to the app.
Please additionally say something like "If the app is built for the simulator, then `-sim_device` must be specified; otherwise `-hw_id` must be specified."