make SvnRepo.diff() recursive by default

This is the default behavior for Git, Mercurial, and Subversion (for legal
rev/paths).
better binary file support for SvnRepo.diff()