Added configurable way of plugging external diff engines

This is a suggested fix for #5.