Updated Diff Iteration

This is based on the work done by @brianmario in #103.

This comes with a few, very basic tests.

What's still missing?
- [x] Documentation
- [x] Tests
- [x] Tree to Workdir Diff
- [x] Tree to Index Diff
- [x] Index to Workdir Diff
- ~~Blob to Blob Diff~~
- ~~Blob to IO/String/StringIO Diff?~~