[RFC] refactoring Tree.diff() into seperate methods

refactoring Tree.diff() into seperate methods
* Tree.diff_to_tree()
* Tree.diff_to_workdir()
* Tree.diff-to_index()

--
rfc = read for comments