Do not implement IEquatable on abstract types
- Renamed FileUtils.WalkDirectory() to .Walk()
- Added FileUtils.GetRelativeFilesRecursive()