Repository: make use of peel for diff()

Instead of trying to reimplement parts of it, make use of Object.peel()
to get to a Tree, with short-circuit returns for None and Blob which can
be handled differently.