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.
refactor Diff.hs
add a bit of documentation
terminate by / some paths.
wrap some reference in a refname and add some validation.

redo listing of valid references.
use the proper name for refname.
add a show-refs subcommands
Merge remote-tracking branch 'nicolas/master'

Conflicts:
	Data/Git/Diff.hs
	Hit/Hit.hs