Add diff3 library and support 

@gaurave took a stab at what it would take to remove diff3.js dependency. This is what I think is the most minimum functions needed. Any current tests that would eventually go down this code path? Also this code has not been dartified, very straight port at the moment.