Gittle.diff now produces a generator of diffs

This PR changes Gittle.diff to yield a generator of diffs. This is handy when a particular set of commits has a *lot* of file changes, causing memory issues