Pure java implementation to diff and patch files and folders