Replace lock with NDB transactions

Fix https://github.com/GoogleChrome/webrtc/issues/292

Can this be a string constant instead? We can add error description as another field in response but would be good to have constant so mobile clients can map it to an enum type. Also, which exception is being caught here?