Added FileIterator.getLastModified() and BRJSNode.lastModified() methods
so we can determine when any files within these node directories last
changed, so dependent artifacts can be built only as necessary -- at the
moment this requires a recursive descent which performs worse than doing
too much work for my current use case.
Updated the file change utility UML before making new architectural
changes.
Proposed new child querying method -- this will lead to significant
internal changes, as it will require child directory observers to be
created/deleted automatically.