Changed ActivityTimeMonitor to work from a DelayQueue with per-thread status objects tracking the timeout status of each thread. Various Javadoc, formatting and visibility changes as per @s1monW comments.
Removed the timeout listener interface which was previously considered important for tracking time spent handling errors which had a significant impact on performance.
New benchmarks with the Luceneutil benchmarking framework show a good improvement