Node monitor refactorization

This resolves [JENKINS-23797](https://issues.jenkins-ci.org/browse/JENKINS-23797) and introduces `OfflineCause` subclass dedicated for node monitors.