Reorganized the code a bit.

- Moved all Path-related code into the `io` package.
- Moved the innter class ExtensionLessPath class to package level.
- Replaced the Path comparison code for the source and target with a
  single comparator; both comparators where basically the same.