Add ability to get diff of the current working directory

Split the constructor up so that two different diff calls can be used.
The are diff of the working dir and diff between two patches.
Add ability to get the full patch

The string which is returned is in 'git diff --patch' format.