Move silverberg.locks to silverberg.lock
Refactor BasicLock, add tests