Split Apart FS Grouping

Split apart the FS grouping into separate Path and File groupings, which
may be slower overall but allows for greater flexibility and code
maintenance.