race condition in move code

user could attempt multiple moves simultaneously
but it would only cost a single move

we use pesimistic locking to stop this
Merge pull request #29 from mitadmin/race_condition_fix

race condition in move code