quick refactor of toString/details
fix race with external symlink changes

file and stream managers could sometimes see different directories
if given a symlink and its referrent changed mid-construction. now
neither file managers nor stream managers attempt to do any symlink
resolution -- instead that is done only by the read-only directory
cache. the latter also includes some basic documentation to that
effect.