Adds useful 'exception contains' method that can check exception class type and message
LockService: naming and documentation.

Improvements to the naming of the participants in the LockService
implementation, and additions to the documentation of it to make the
code easier to follow.

* Structure/Inheritance diagrams in ASCII ART.
* Example boxes-and-pointers diagram for the wait queue in ASCII ART.
* Emphasise the queue structure through naming.
* Describe how the ReentrantLockService implements fairness.