STASHDEV-7788 Monitor a few extra statistics in the `HealthMonitor` logging

Monitor a few extra statistics in the `HealthMonitor` logging:

 * `lock.count` which is the number of in-flight lock operations
 * `executor.q.response.stats` consisting of:
    - number of responses processed since last log
    - cumulative deserialisation time (nanosec resolution) since last log
    - the single worst packet in terms of deserialisation time since last log

The intention is to find out why the `responseThread` is getting stuck.
Deserialisation should be super quick, right?
`TimeUnit.NANOS.toMillis` seems to truncate to the nearest milli.  Most deserialisation times are microseconds in my local testing.