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.
We should quote `$PREBUILT_APP` everywhere it's used (i.e. `[[ -z "$PREBUILT_APP" ]]`) in case there are spaces in the path.