Added typed delegate for conflict resolution and corresponding processing

Previously the `IDetectConflicts.Register<TUncommitted, TCommitted>` method accepted `bool ConflictDelegate(object, object)` even though actual parameters passed to delegate where typed `TUncommitted` and `TCommitted`, forcing developers to cast them back to event types. 

This PR fixes this issue while maintaining backward compatibility through extension method (marked as obsolete to forth devs to move away from untyped code).