SERVER-15614 LockerImpl changes to support diagnostics and deadlock
detection

Doesn't actually implement either, just provides the support and
prerequisites.

* We need to be able to map back from Locker objects to the operations,
* which own them, so introduce a LockerId type.
* Put the internal locking logic in a separate method.
SERVER-15541 Simplify the save/restore lock state code

There is no need to keep around the recursion counts, because yielding
only happens at the top-most level.
Merge remote-tracking branch 'upstream/master'