Cache children as well so that they can be returned when the watcher is reused

Fixes an issue with apache/lucene-solr#80 pulled to SOLR-6336. If the first `getChildren` actually returns nodes, and the second request happens before the watch is fired, currently it will return no children.

The rest of the patch is just minor code cleanup.