Fix for multithreaded race condition

Files were being accessed and overwritten by multiple threads, causing
machines to be provisioned incorrectly.

There were also weird merging problems, so I deleted the original branch
and recreated the changes freshly here.
Removing old unused code from the multithread fix
Merge pull request #10 from SeqWare/feature/jmg_multithread_fix

Feature/jmg multithread fix