Bad hack to allow cchin concurrency

Add some minimal error handling.
Use the a thread's json file as a makeshift lock, so that multiple instances of cchin can run conurrently with the same target board, but without trying to download the exact same files at the same time.

Known bugs: If you interrupt chin in the middle of downloading a thread, that thread will then be skipped as long as the json file exists. We might want to delete the json file in a atexit or something.