Allow passing a rev string to Rugged::Tree#diff.
Fix a potential memory leak.
Use revparse instead of lookup.
Also allow passing rev strings to Rugged::Repository#diff_workdir.