[LockManager] Made it easier to get both SH and EX locks at once.

* This also makes it possible for subclasses to optimize this case.
* Added a timeout parameter to ScopedLock::factory().
* Cleaned up a few bits of documentation.

Change-Id: Id3e9cf01f25ab498ea00d87ffb6d00aa8b05052b