refactored to return array for recursiveDiff

now just returns an array with each element having properties
for: the path, the old and/or nu GitObjects
implemented diff for full-trees

includes basic binary file detection, unified diff libs still needs
changes to be able to do cgit look-alike diffs