Improve the defaultDiff function

Save more information:
  - diff context
  - line number

Also improve the HitDiff data design. No deplicated data and easier to go
through.
Use Filesystem.FilePath type for TreeEnt's name