Adding project locks

- Running any command will now lock a project, preventing you from
  accidently running a build while an update is going in another
  terminal, or whatever.
- You can ignore/smash locks if you like. You shouldn't, though.

Change-Id: I611a6aaff1be03b6e534593fd32347f98bfce36e