This commit changes which pages worry about passing lock information. Previously index2.php and app_description.php passed the list of locks to run_script.php. This has now changed to having run_script.php handling all lock related information. The previous two scripts now just pass the name of the app and the submenu that app is located in. Also when a GUI application is finished running the browser will now go back to the previous screen that invoked running the GUI application. This also fixed the issue of when running a 3D demo that the page wasn't being refreshed therefore you could still see part of the 3D demo on top of matrix. However, this fix only really works when running matrix locally. When Matrix detects a GUI application it no longer updates the screen which was sometimes causing flickering issues. The finally I fixed a bug that rarely shows up. Sometimes when running a script the output file hasn't been created in time for Matrix to read it in. This caused Matrix to stop and prevent anything from working again until Matrix was restarted. Now there is a check to see if there was a problem reading the output file. If there is Matrix will try to read the file up to three times and if it still fails it will display an error and reenable the back and main menu button.