Ensured the watcher thread pool size is reasonably bound. In particular, the
watcher thread pool size is now five times the number of processors until 50
threads are reached. If more than 50 cores exist and 50 threads exist, the
watch thread pool size grows to match the number of processors.
Data collectors now all share the same cluster state that existed at the
beginning of data collection. This removes the extremely rare race condition
where the cluster state can change between some data collectors, which could
cause temporary issues in the Monitoring UI.