Avoid multiple minimizing/combining processes running simultaneously

If the CSS/JS changes and is re-generated by Carabiner, there is a possibility that the web server could get many requests before the re-generation is complete, and each request will start re-generation process.  This leads to many processes generating the JS/CSS at the same time, causing extremely high load on the server.  This uses a file lock to avoid this situation, only the first request to hit the server will re-generate the CSS/JS and subsequent requests will wait for the file to be generated.