Added Diff3 Support

This pull request contains some initial support for using the diff3 unix command. It is designed to work in combination with the existing Diff::Diff object. When a change has been made to a file using an older copy, the newer copy can now have any non-conflicting changes merged into the 2nd string (string2) so that it may be diffed more seamlessly. This allows you to create a 2 file diff out of 3 files. 

API is as follows:
```ruby

diff3 = Diffy::Diff3.new(oldest, yours, mine)
diff3.diff3 # => returns the output from calling diff3
diff3.patched_mine # => returns a patched version of "mine" that will be used as string2
diff3.to_s # => same as if you were to call on the normal diff object, except now it uses the patched version of string2
diff3.change_groups # => returns an array of groups that is a better data representation of the merged output returned from calling the diff3 utility. 
```

The specs could be beefed up some more, but there is an existing set to get things started.