Make sure that multiple instances of ok aren't running

This commit makes sure that multiple instances of ok aren't running. Here's how it works:

- It checks for a file called .ok_lock. If it's there, then it asks the user to check if another ok is running somewhere. If it isn't, then they should type in 'Run ok anyway'. If not, they can type in anything else and it'll exit.

- If no file called .ok_lock exists, it makes it and removes it at the end of the ok run.
The problem with multiple versions of ok running simultaneously is that it loads the test contents into memory and might flush it back at different times. So, people might unlock a bunch of tests, have ok hang, then run it in another tab. This means that they lost all of their unlocking progress. That's basically the problem that students have been having when they say that ok re-locked all of their tests, so this is definitely a real problem.

Another way to approach this would be to write back the tests every time they unlock something, but it might be a little slow depending on their disk- I can implement this later tonight if you think that's a better solution.