SIGNIFICANT IMPROVEMENTS/FIXES - handling subfile changes

Lots of improvements and bugfixes. Most notable are refactors
surrounding new support for efficiently detecting changes within the
content of *subfiles* which do not update parent directory mtime. mtimes
are now cached per subfile for directory assets and changes are detected
individually on request and trigger asset rebuild, if needed. This
design catches changes but keeps requests fast because only 2 stat calls
(to get the mtime of the directory and the given subfile) are required
to check for changes