! routing: make `listDirectoryContents` work under an arbitrary pathPrefix, fixes #684

The incompatible change comes from the need to add a new parameter to DirectoryListing to figure out if we are at the (browsable) root of the directory tree.